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

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>
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
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>
Dans mon code je fais :

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)
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
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();
 
        }
Mon problème est que mes Straps et mes guides sont bien sauvegardés MAIS AVEC AUCUN LIEN ENTRE EUX!!
C'est à dire que dans ma table strap, pour un strap donné, l'id du guide associé est null!

PLEASE HELP!