Salut,
J'ai besoin d'aide sur une relation bidirectionnelle many-to-one qui ne fonctionne pas.
J'ai une classe Guide qui a une liste de Straps.
Une classe Strap qui a un Guide.
Voici mes deux fichiers de mapping allégés:
Guide.hbm.xml
Strap.hbm.xml
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
25 <class name="Guide" table="GUIDE"> <id name="id" column="GUIDE_ID"> <generator class="sequence"/> </id> <property name="boxcode"/> <property name="comments"/> <property name="nc"/> <list name="straps" inverse="true" lazy="false" cascade="persist,merge,save-update,delete-orphan"> <key column="GUIDE_ID"/> <index column="index"/> <one-to-many class="Strap"/> </list> <list name="collars" inverse="true" lazy="false" cascade="persist,merge,save-update"> <key column="GUIDE_ID" /> <index column="index"/> <one-to-many class="Collar"/> </list> </class>
Dans mon code je fais :
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
25
26
27
28
29
30
31
32
33
34
35
36 <class name="Strap" table="STRAP"> <id name="id" column="STRAP_ID"> <generator class="sequence"/> </id> <property name="name" column="NAME" unique="false"/> <many-to-one name="setupAuthor" class="Author" lazy="false" column="SETUP_AUTHOR_ID" unique="false" not-null="false"/> <many-to-one name="unsetupAuthor" class="Author" lazy="false" column="UNSETUP_AUTHOR_ID" unique="false" not-null="false"/> <many-to-one name="validationAuthor" class="Author" lazy="false" column="VALIDATION_AUTHOR_ID" unique="false" not-null="false"/> <many-to-one name="guide" insert="false" update="false" lazy="false" column="GUIDE_ID" not-null="false"/> </class>
Et je sauvegarde en faisant dans ma classe GuideManager
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Strap strap = new Strap(); Guide guide = new Guide(); strap.setGuide(guide); guide.addStrap(strap); GuideManager.save(guide)
Mon problème est que mes Straps et mes guides sont bien sauvegardés MAIS AVEC AUCUN LIEN ENTRE EUX!!
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
25
26 public static void save(Guide guide) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx = null; try { tx = session.beginTransaction(); session.save(guide); tx.commit(); }catch (HibernateException e){ OuateLogger.logError("Pb lors de la création du guide "+guide.getBoxcode()); OuateLogger.logError(e.getMessage()); e.printStackTrace(); }finally { session.close(); }
C'est à dire que dans ma table strap, pour un strap donné, l'id du guide associé est null!
PLEASE HELP!
Partager