Bonjour,
J'ai une question concernant hibernate et les classes d'associations.
Pour le moment, j'ai les classes suivantes :
- Student
- 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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="persistenceClass.Person" table="T_PERSON"> <id name="Id" column="PERSON_ID"> <generator class="native" /> </id> <property name="FirstName" column="PERSON_FIRST_NAME" not-null="true" /> <property name="LastName" column="PERSON_LAST_NAME" not-null="true" /> <property name="Type" column="PERSON_TYPE" not-null="true" /> <property name="BirthDate" column="PERSON_BIRTH_DATE" /> <property name="BirthCity" column="PERSON_BIRTH_CITY" /> <property name="PhoneNumber" column="PERSON_PHONE_NUMBER" /> <property name="MobileNumber" column="PERSON_MOBILE_NUMBER" /> <property name="Mail" column="PERSON_MAIL" /> <property name="Address" column="PERSON_ADDRESS_ADDRESS" /> <property name="ZipCode" column="PERSON_ADDRESS_ZIPCODE" /> <property name="City" column="PERSON_ADDRESS_CITY" /> <property name="Image" column="PERSON_IMAGE" type="image" /> <many-to-one name="Country" column="PERSON_ADDRESS_COUNTRY" class="persistenceClass.Country" /> <many-to-one name="BirthCountry" column="PERSON_BIRTH_COUNTRY" class="persistenceClass.Country" /> <many-to-one name="Civility" column="PERSON_CIVILITY" class="persistenceClass.Civility" /> <many-to-one name="Sex" column="PERSON_SEX" class="persistenceClass.Sex" /> <joined-subclass name="persistenceClass.Student" table="T_STUDENT"> <key column="PERSON_ID" /> </joined-subclass> <joined-subclass name="persistenceClass.Teacher" table="T_TEACHER"> <key column="PERSON_ID" /> </joined-subclass> </class> </hibernate-mapping>
- ClassStudent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="persistenceClass.Class" table="T_CLASS"> <id name="Id" column="CLASS_ID"> <generator class="native" /> </id> <many-to-one name="Formation" column="CLASS_FORMATION" class="persistenceClass.Formation" /> <many-to-one name="Year" column="CLASS_YEAR" class="persistenceClass.Year" /> </class> </hibernate-mapping>
Tout cela fonctionne, j'aimerai cependant savoir s'il est possible dans ma classe "Class" d'avoir une List<Student> afin que je puisse acceder a tous les eleve d'une class depuis la classe meme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="persistenceClass.ClassStudent" table="T_CLASS_STUDENT"> <composite-id> <key-many-to-one name="Student" class="persistenceClass.Student" column="CLASS_STUDENT_STUDENT"/> <key-many-to-one name="SchoolClass" class="persistenceClass.Class" column="CLASS_STUDENT_CLASS"/> </composite-id> </class> </hibernate-mapping>
J'en profite pour poser une autre question quand je tente de supprimer un utilisateur, si toute les foreigns keys sont a null, cela fonctionne mais sinon j'ai l'excetpion suivante :
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
37
38
39
40 Exception in thread "AWT-EventQueue-0" org.hibernate.HibernateException: illegally attempted to associate a proxy with two open Sessions at org.hibernate.proxy.AbstractLazyInitializer.setSession(AbstractLazyInitializer.java:126) at org.hibernate.engine.StatefulPersistenceContext.reassociateProxy(StatefulPersistenceContext.java:572) at org.hibernate.engine.StatefulPersistenceContext.reassociateIfUninitializedProxy(StatefulPersistenceContext.java:532) at org.hibernate.event.def.ProxyVisitor.processEntity(ProxyVisitor.java:50) at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:127) at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:84) at org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:78) at org.hibernate.event.def.AbstractVisitor.process(AbstractVisitor.java:146) at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:123) at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:74) at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:948) at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:926) at persistenceService.Hibernate.delete(Hibernate.java:45) at components.Panel_Listing.actionPerformed(Panel_Listing.java:120) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253) at java.awt.Component.processMouseEvent(Component.java:6108) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:5873) at java.awt.Container.processEvent(Container.java:2105) at java.awt.Component.dispatchEventImpl(Component.java:4469) at java.awt.Container.dispatchEventImpl(Container.java:2163) at java.awt.Component.dispatchEvent(Component.java:4295) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055) at java.awt.Container.dispatchEventImpl(Container.java:2149) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4295) at java.awt.EventQueue.dispatchEvent(EventQueue.java:604) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Merci d'avance.
Cordialement,
Tincani Geoffrey
Partager