Bonjour à tous.
Je suis nouveau à Hibernate.
J'ai deux Tables très basiques et, l'une référence l'autre par clé étrangère.
Je pense qu'il n'y a pas de problème de mapping ni dans mes classe persistantes qui sont les suivantes:
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 <class name="Tab" table="tab" schema="public"> <id name="id" type="int"> <column name="id" /> <generator class="assigned" /> </id> <many-to-one name="test" class="Test"> <column name="test" /> </many-to-one> </class> <class name="Test" table="test" schema="public"> <id name="id" type="int"> <column name="id" /> <generator class="assigned" /> </id> <property name="text" type="string"> <column name="text" /> </property> <set name="tabs" inverse="true"> <key> <column name="test" /> </key> <one-to-many class="Tab" /> </set> </class>
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 public class Tab implements java.io.Serializable private int id; private Test test; public Tab() { } //code complet avec les getter et les constructeurs public Test getTest() { return this.test; } public void setTest(Test test) { this.test = test; }ce bout de code que j'exécute dans un Main m'insère très une entrée dans Test mais pas les objets associés à savoir les Tab. (et inversement ça marche sans problème).
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 public class Test implements java.io.Serializable { private int id; private String text; private Set tabs = new HashSet(0); public Test() { } ..... public Set getTabs() { return this.tabs; } public void setTabs(Set tabs) { this.tabs = tabs; }
Il n'y pas d'erreurs d'exécution.
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 session = HibernateUtil.currentSession(); Transaction tx = session.beginTransaction(); Tab tab = new Tab(11); Set tabs = new HashSet<Tab>(); tabs.add(tab); //ceci ne marche pas Test test = (Test)session.load(Test.class, 30); test.setTabs(tabs); //et cela ne marche pas non plus. Test test2 = (Test)session.load(Test.class, 30); test2.getTabs().add(tab); session.saveOrUpdate(test2); session.flush(); tx.commit(); HibernateUtil.closeSession();
Merci de m'aider à comprendre d'ou vient le problème.
Partager