Bonjour,
Je suis en train de me former à hibernate et j'ai un soucis avec le mapping one-to-one.
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 <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>
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 ???
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());
merci d'avance pour vos lumières
Partager