Bonjour,
J'ai un souci, je n'arrive pas à réaliser un mapping entre deux classes.
Contexte :
J'ai un modèle de données avec les entités Candidate et Mobility. Chaque Candidate peut avoir plusieurs Mobility (Nantes, Paris, Strasbourg,...).
Et chaque mobilité peut correspondre à plusieurs candidats.
J'ai donc une relation bidirectionnelle.
Dans la base de données j'ai donc une table d'association CandidateMobility.
Mais le problème c'est que j'arrive à faire le mapping dans un sens mais pas dans l'autre :
De candidate vers Mobility j'ai ça comme code : Mobility est une classe qui hérite de simpleEntity. Je ne sais pas si le problème vient de là.
Ca à l'air de fonctionner. Je peut faire persister une liste de Mobility pour un Candidate.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <class name="com.avisto.recruter.shared.model.Candidate" table="Candidate"> <id name="id" column="id"> <generator class="sequence"> <param name="sequence">hibernate_sequence</param> </generator> </id> ... <list name="mobility" lazy="false" table="CandidateMobility"> <key column="ca_id" /> <list-index column="idx"/> <many-to-many class="com.avisto.recruter.shared.model.Mobility" column="id_entity"/> </list> </class>
En revanche de l'autre coté voilà ce que j'essaye de faire :
Après l'ajout de cette balise <set> dans cet élément, les données ont l'air de pouvoir toujours être récupérées par hibernate car coté serveur je peut récupérer une liste d'objet Mobility.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <class name="com.avisto.recruter.shared.model.SimpleEntity" table="SimpleEntity"> <id name="id" column="id_entity"> <generator class="sequence"> <param name="sequence">hibernate_sequence</param> </generator> </id> <joined-subclass name="com.avisto.recruter.shared.model.Mobility" table="Mobility" > <key column="id_entity"/> <set name="candidates" lazy="false" table="CandidateMobility" inverse="true"> <key column="id_entity" /> <many-to-many class="com.avisto.recruter.shared.model.Candidate" column="id"/> </set> </joined-subclass> </class>
Mais la procédure (Remote Procedure Call) qui les envoie coté client (technologie GWT) échoue systématiquement.
Je ne saurai pas dire si le problème vient simplement du mapping hibernate (si quelqu'un pouvait le valider) ou si c'est lié à GWT qui a des incompatibilités avec hibernate.
Partager