Bonjour à tous. J'ai un petit souci lors de la persitence d'objets.
J'ai un table TypeDePlat et une table Plat.
Un plat peut avoir plusieurs type de plat (nombre indéfini).
J'ai donc décidé de créer une table complémentaire "typeplatcollection" qui contient les liens entre les deux tables.
Voici le fichier .hbm :
Code:
<class name="....Plats" table="plats">
<id name="idHh" column="id_plat" type="long">
<generator class="increment"/>
</id>
<property name="name"/>
<property name="description"/>
<property name="price" type="float"/>
<set name="typeDePlats" table="typeplatcollection" cascade="all-delete-orphan">
<key column="id_plat" />
<many-to-many column="id_typeplat"
class="....TypePlat"
unique="true" outer-join="true"/>
</set>
</class>
<class name="....TypePlat" table="typeplat">
<id name="idHh" column="id_typeplat" type="long">
<generator class="increment"/>
</id>
<property name="name"/>
<property name="description"/>
</class>
Lorsque je crée un nouveau plat avec des types de plats, tout est OK.
Lorsque je delete, tout est OK
Lorsque je modifie :
Si je supprime un type de plat et que j'en remet un nouveau, c'est OK.
Si j'ajoute un nouveau type de plat, là j'ai une erreur :
org.hibernate.NonUniqueObjectException:a different object with the same identifier value was already associated with the session
Dans mon code java, je supprime l'ancien "Set" et j'en recrée un nouveau avec les type de plats ajouté.
Je ne trouve pas la solution, pourriez-vous m'aider ?
Merci.