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