Bonjour,
Je rencontre un problème pour implémenter un delete en cascade sur une relation many-to-many. Pas de souci pour une one-to-many avec le tag : cascade="all-delete-orphan"
Niveau BDD j'ai une association classique du genre :
Formateur<----->Formateur_Categorie<----->Categorie
Au niveau du mapping de la classe Formateur j'ai donc :
Lorsque je supprime un formateur j'aimerais que les occurrences de la table d'association correspondantes soient également supprimées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <set name="categories" inverse="true" lazy="false" table="categorie_formateur" fetch="select" cascade="all-delete-orphan"> <key> <column name="id_formateur" not-null="true"/> </key> <many-to-many entity-name="formation.modele.Categorie"> <column name="id_categorie" not-null="true" /> </many-to-many> </set>
Que doit on préciser en plus au niveau du mapping pour que hibernate le prenne en charge ?
Merci d'avance.
PS : Hibernate version 3.
PPS :
Dans le cas présent l'exception suivante est levée :
ERROR: update or delete on table "categorie" violates foreign key constraint "fk_competence_1" on table "competence"\n Détail*: Key (id_categorie)=(1) is still referenced from table "competence".
Il essaye de supprimer également les occurences de la table Categorie. Ce que je ne veux pas. Je voudrais que la suppression s'arrête juste à la table d'association.
Partager