Bonjour, j'ai un problème pour supprimer des éléments de mes tables.
Voiçi mon fichier HBM :
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0/EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping default-access="property" default-lazy="false" auto-import="true" default-cascade="save-update,delete">
<class name="com.whoswho.model.LdapUser" table="LDAPUSER">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="uid">
<column name="LABEL"/>
</property>
<set name="missions" table="USER_MISSION">
<key column="USER_ID"/>
<many-to-many class="com.whoswho.model.Mission" column="MISSION_ID"/>
</set>
</class>
<class name="com.whoswho.model.Mission" table="MISSION">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="label">
<column name="LABEL"/>
</property>
<property name="description">
<column name="DESCRIPTION"/>
</property>
<property name="startDate" >
<column name="START_DATE" sql-type="DATE"/>
</property>
<property name="endDate">
<column name="END_DATE" sql-type="DATE"/>
</property>
<set name="functions" table="MISSION_FUNCTION">
<key column="PROJECT_ID" />
<many-to-many class="com.whoswho.model.Function" column="FUNCTION_ID"/>
</set>
<set name="technologies" table="MISSION_TECHNO">
<key column="PROJECT_ID" />
<many-to-many class="com.whoswho.model.Technology" column="TECHNO_ID"/>
</set>
<many-to-one name="client" column="CLIENT_ID" class="com.whoswho.model.Client"/>
</class>
<class name="com.whoswho.model.Client" table="CLIENT">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="label" >
<column name="NAME"/>
</property>
</class>
<class name="com.whoswho.model.Function" table="FUNCTION">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="label" >
<column name="LABEL" unique="true"/>
</property>
</class>
<class name="com.whoswho.model.Technology" table="TECHNOLOGY">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="label" >
<column name="LABEL" unique="true"/>
</property>
</class>
</hibernate-mapping>
Mon but est de supprimer une mission.
Je récupère donc un USER avec tous ces objets associés (son set de missions etc ...)
Je supprime la mission dans le set et je fais ensuite un saveOrUpdate.
Le problème, c'est qu'hibernate me supprime simplement la liaison dans la table USER_MISSION.
Donc à l'affichage ma mission n'apparait plus, mais dans la base, la mission existe encore (ainsi que les eventuels relations entre mission/function et mission/technology).
Comment faire pour que hibernate supprime toute la chaine et non pas simplement la liaison USER_MISSION ?
J'avais pensé au paramètre cascade que j'ai mis en tête mais rien ne change.
Merci pour votre aide