Bonjour,
Je suis encore relativement débutant à Hibernate et j'ai du mal à mapper un concept que j'ai mis en place dans mon design. Je suis sûr que celui ci est possible avec la capacité d'hibernate, mais je n'arrive pas à rédiger le fichier xml car je connais encore très mal le langage XML de hibernate et que j'ai encore qql difficultés avec les concepts élaborés de l'ORM.
Voilà le problèmes en deux dessin ( UML et Merise) :
Coté objet, voilà l'idée :
En deux mot, ItemList est lui aussi un Item mais en plus il contient une liste d'autre Item. Niveau objet, rien de très élaboré.
Coté DB je verrais bien le modèle suivant :
La propriété LIST est fixé à TRUE si l'ITEM en contient d'autre. Cette propriété n'est pas une obligation mais je pense qu'elle simplifie le problème ( au moins sur feuille).
Voilà mon essai de fichier Mapping :
Code:
<class name="Item" table="ITEM">
<id name="id" column="ID">
<generator class="increment"/>
</id>
<discriminator column="LINE_ID" insert="false"/>
<property name="Property" column="PROPERTY"/>
</class>
<subclass name="ItemList" extends="Item" discriminator-value="L">
<list name="items" table="ITEMS">
<key column="ID_LIST" not-null="true" update="false"/>
<list-index column="ID_ITEM"/>
<many-to-many unique="true" column="ID_ITEM" class="Item"/>
</list>
</subclass>
Le problème sur lequel je travaille est plus riche que ce simple example, donc il est possible que le fichier de mapping ci dessous fonctionne bien pour un cas aussi élémentaire. J'aimerais surtout savoir si je m'y prend de la bonne façon ( surtout n'hésite pas à me commenter l'usage des différents mot clés du xml d'hibernate merci !)...