Bonjour à tous,
J'ai un petit soucis avec Hibernate que je n'arrive pas à résoudre. Explication :
J'ai deux classe abstraite A1 et A2 qui hérite toutes deux d'une classe abstraite A. Ma base de donnée comprend une table A qui contient toutes les données à la fois de la classe A1 et A2 ainsi que celle de la classe mère A.
Pour mapper les classes, j'utilise un attribut dans la table comme discriminant. J'aimerais pouvoir changer le type d'objet (passer du type A1 à A2 et inversement) sans avoir à copier les valeur de l'ancien objet dans un nouveau avant de le supprimer afin de garder le même ID.
Voici mon mappage:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <class abstract="true" name="A" table="A"> <id name="id"> <generator class="identity"/> </id> <discriminator column="type" type="string"/> <property name="name"/> <property name="oldName" column="old_name" /> <property name="dateDebut" type="date" column="date_debut"/> <property name="dateFin" type="date" column="date_fin"/> <property name="followOn" column="follow_on" /> <many-to-one name="division" class="Division" column="id_division"/> <many-to-one name="departement" class="Departement" column="id_departement"/> <many-to-one name="parent" class="A" column="id_parent"/> <subclass name="A1" discriminator-value="a1"> <property name="project" /> <property name="undef" /> </subclass> <subclass name="A2" discriminator-value="a2"> <property name="avr" /> <property name="nb"/> </subclass> </class>
Je ne vois vraiment pas comment faire. Merci d'avance pour votre aide.
Partager