J'ai exactement le même souci, avec un bag one-to-many, unidirectionnel.
Petite différences, mes clés sont des composites, mais le souci reste le même. Lorsque je supprime l'objet porteur de la liste, il hurle que j'essaye d'inserer une valeur null sur une colonne qui ne le supporte pas.
Voici le mapping portant la collection :
Quote:
<class name="Fichier" table="arfi">
<composite-id name="fichierId" class="FichierId">
<key-property name="requestNumber" Column="req_number"/>
<key-property name="fichierNumber" column="fic_number"/>
</composite-id>
<bag name="telechargements" cascade="all-delete-orphan" table="arte" >
<key foreign-key="true" >
<column name="req_number" />
<column name="fic_number" />
</key>
<one-to-many class="Telechargement"/>
</bag>
</class>
Et celui de éléments de la collection
Quote:
<class name="Telechargement"
table="arte">
<composite-id name="telechargementId"
class="TelechargementId">
<key-property name="requestNumber" column="req_number" />
<key-property name="fichierNumber" column="fic_number" />
<key-property name="userId" column="user_id" />
</composite-id>
</class>
comme vous pouvez le voir, j'ai mis foreign-key à true, pensant que ca changerait quelque chose... en vain.
Lorsque je spécifie not-null = true pour les éléments de la clé ( dans la balise bag donc ... ) , je me prends une erreur de type :
Quote:
java.lang.Throwable: org.hibernate.MappingException: Repeated column in mapping for entity: com.calyon.ssr.metier.report.Telechargement column: req_number (should be mapped with insert="false" update="false")
Si vous avez une solution, vous ferez 2 heureux.