Bonjour,

Je suis en train de me former à hibernate et j'ai un soucis avec le mapping one-to-one.
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
 
<class name="Person">
		<id name="id">
			<generator class="foreign">
				<param name="property">dog</param>
			</generator>
		</id>
		<property name="name" />
		<one-to-one name="dog"/>
	</class>
 
	<class name="Dog">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="name" />
		<one-to-one name="master" />
	</class>
j'arrive bien à mettre en base(HSQLDB) à persister Personn et Dog, par contre je souhaite attribuer à une personne existante en base associé avec un chien existant un autre chien et cela ne marche pas voilà mon code de test
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
 
Session session = sessionFactory.getCurrentSession();
		Transaction tx = session.beginTransaction();
 
		Person person = (Person) session.createQuery("from Person where name='John'").uniqueResult();
		System.out.println("--> Person =" + person.toString());
		final Dog dog = (Dog) session.createQuery("from Dog where name='rintintin'").uniqueResult();
		System.out.println("--> dog =" + dog.toString());
 
		//person.setDog(dog);
		dog.setMaster(person);
 
		//session.persist(person);
		session.persist(dog);
 
 
		tx.commit();
		System.out.println("--> Personn=" + person.toString());
 
 
 
		session = sessionFactory.getCurrentSession();
		tx = session.beginTransaction();
		person = (Person) session.createQuery("from Person where name='John'").uniqueResult();
		System.out.println("--> Person =" + person.toString());
Au départ John est le maitre de Medor et avec ce code je veux que John devienne le maitre de rintintin et ça ne marche pas ???

merci d'avance pour vos lumières