Bonjour,
SVP, je tente de mapper mes classes Hibernate afin d'utiliser le Delete d'une entité en Cascade.
Voilà mon modèle:
Une View contient une liste de groupes (en utilisant la table d'association Asso_Project_Manager_Group_View).
Un Group contient une liste de Project Manager(en utilisant la table d'association Asso_Project_Manager_Group).
Ce qui donne:
Avec les mappings suivants:
- ProjectManagerStatViewVO (or View):
ProjectManagerStatGroupVO (or Group)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <class name="EJL.ORM.Entity.ProjectManagerStatViewVO, ORM" table="STAT_PROJECT_MANAGER_VIEW" > <id name="id" access="field" column="ID" type="System.Int32" unsaved-value="0"> <generator class="native"/> </id> <property name="label" column="LABEL" access="field" not-null="true" type="System.String" length="250" insert="true" update="true"/> <bag name="groupList" access="field" lazy="false" table="ASSO_PROJECT_MANAGER_GROUP_VIEW" cascade="all"> <key column="VIEW_ID"/> <many-to-many column="GROUP_ID" class="EJL.ORM.Entity.ProjectManagerStatGroupVO, ORM"/> </bag> </class>
Les méthodes Save et Update fonctionnent parfaitement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <class name="EJL.ORM.Entity.ProjectManagerStatGroupVO, ORM" table="STAT_PROJECT_MANAGER_GROUP" > <id name="id" access="field" column="ID" type="System.Int32" unsaved-value="0"> <generator class="native"/> </id> <property name="label" column="LABEL" access="field" not-null="true" type="System.String" length="250" insert="true" update="true"/> <bag name="projectManagerList" access="field" lazy="false" table="ASSO_PROJECT_MANAGER_GROUP" cascade="all"> <key column="GROUP_ID"/> <many-to-many column="PROJECT_MANAGER_ID" class="EJL.ORM.Entity.ProjectManagerVO, ORM"/> </bag>
(En effet, Hibernate ajoute/M.A.J les vues, leur(s) groupe(s) et les differents liens en un seul appel de méthode).
Maintanant, j'aimerais en faire autant avec la suppression.
Actuellement, lors de la suppression d'une View, il semble que Hibernate tente de supprimer toutes les instances liées à la View y compris celle de ProjectManager qui liés à d'autres entités dans mon modèle. cela me génère donc une exception mentionnant une violation de contrainte ...
Comment puis-je spécifier à Hibernate de supprimer la View ainsi que toutes les instances liées sauf celle de ProjectManager?
Merci. Jonathan
Partager