J'ai deux classes, disons Groupe et Personne avec une Relation ManyToMany qui est mappée dans un JoinTable.JPA/Hibernate: ManyToMany delete relation
Si je supprime une personne qui a une relation avec un groupe, je veux supprimer l'entrée de la table de jointure (ne pas supprimer le groupe lui-même!).
Comment dois-je définir les annotations en cascade? Je ne l'ai pas trouvé une documentation très utile, mais plusieurs discussions du conseil non résolues ...
public class Group {
@ManyToMany(
cascade = { javax.persistence.CascadeType.? },
fetch = FetchType.EAGER)
@Cascade({CascadeType.?})
@JoinTable(name = "PERSON_GROUP",
joinColumns = { @JoinColumn(name = "GROUP_ID") },
inverseJoinColumns = { @JoinColumn(name = "PERSON_ID") })
private List<Person> persons;
}
public class Person {
@ManyToMany(
cascade = { javax.persistence.CascadeType.? },
fetch = FetchType.EAGER,
mappedBy = "persons",
targetEntity = Group.class)
@Cascade({CascadeType.?})
private List<Group> group;
}
Je souhaite supprimer l'association automatiquement lors de la suppression d'un objet personnel. Mon intention est de ne pas avoir à le faire manuellement. Si je dois, je n'ai pas besoin de cascade. Ou est-ce que j'ai eu une erreur sur la fonction Cascading? – tautologe
Vous devez. Cascader ne le fait pas. –