Bonjour, j'ai un problème de récupération d'objets persistants dans Hibernate.
Je possède 3 tables
events {events_id,title,...}
person {person_id,age,...}
person_event {person_id,event_id}
mappées comme suit :
(Classe Person)
Code:
<hibernate-mapping>
<class name="events.Person" table="person" schema="public">
<id name="personId" type="long">
<column name="person_id" /><generator class="increment" />
</id> ...
<set name="events" table="PERSON_EVENT" lazy="false">
<key column="PERSON_ID"/>
<many-to-many column="EVENT_ID" class="events.Events"/>
</set>
</class>
</hibernate-mapping>
(Classe Events)
Code:
<hibernate-mapping>
<class name="events.Events" table="events" schema="public"
<id name="eventsId" type="long">
<column name="events_id" /> <generator class="increment" />
</id> ...
<set name="personnes" table="PERSON_EVENT">
<key column="EVENT_ID"/>
<many-to-many column="PERSON_ID" class="events.Person"/>
</set>
</class>
</hibernate-mapping>
Le mapping fonctionne parfaitement, les insertions et suppressions ne posent pas de problèmes.
Par contre lorsque j'essaye de récupérer une instance de ma classe Person :
Code:
Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); this.model.setDatas(session.createQuery("from Person").list()); this.personne = (Person) model.getDatas().get(0); session.getTransaction().commit();
Il remplit apparemment la propriété events de la classe avec des objets de type PersistentSet car je reçois l'erreur :
Code :
javax.servlet.ServletException: javax.servlet.jsp.JspException: Error getting property 'eventsId' from bean of type org.hibernate.collection.PersistentSetL'erreur à lieu lorsque ma JSF tente d'accéder aux évènements contenus dans l'instance de Person:
Code:
<h:dataTable binding="#{personctrl.view.dataTable}" value="#{personctrl.personne.events}" var="ev" border="1">
<h:column>
<f:facet name="header">
<h:outputText value="Identifiant" />
</f:facet>
<h:outputText value="#{ev.eventsId}" />
</h:column>
...
J'espère avoir été suffisament précis ... merci de votre aide.