Hallo ,
ich arbeite mit JBOSS, SEAM und EBJ 3.0 und verwende dabei Hibernate Annotations.
Ich habe dort eine ManyToMany zwischen 2 Beans und möchte Insatzen beider Beans löschen können.
Bean1
Code:
@ManyToMany(targetEntity = User.class,fetch = FetchType.EAGER)
@JoinTable(name = "CFP_userprofile_contributable_map", joinColumns = @JoinColumn(name = "c_id"), inverseJoinColumns = @JoinColumn(name = "login"))
public Collection<User> getFavoriteUsers() {
return favoriteUsers;
}
Bean2
Code:
@ManyToMany(mappedBy = "favoriteUsers",targetEntity = Contributable.class, fetch = FetchType.EAGER)
public Collection<Contributable> getContributableFavorites() {
if (contributableFavorites == null) {
contributableFavorites = new ArrayList<Contributable>();
}
return contributableFavorites;
}
Wenn ich nun eine Instanz von Bean1 mit
Code:
entitymanager.remove(bean1);
lösche geht das, beim löschen von bean2 bekomme ich folgende Exception:
Code:
23:12:58,859 ERROR [JDBCExceptionReporter] Cannot delete or update a parent row: a foreign key constraint fails (`jbossdb/cfp_contributable`, CONSTRAINT `FKCE4305C0FFE09684` FOREIGN KEY (`creator_login`) REFERENCES `cfp_user` (`login`))
23:12:58,859 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Kann ich das irgendwie hinbekommen das ich bidirectional löschen kann?