Bonjour, j'ai un problème de récupération d'objets persistants dans Hibernate.

Je possède 3 tables

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
events {events_id,title,...}
person {person_id,age,...}
person_event {person_id,event_id}
mappées comme suit :

(Classe Person)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<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">
            <key column="PERSON_ID"/>
            <many-to-many column="EVENT_ID" class="events.Events"/>
        </set>
    </class>
</hibernate-mapping>
(Classe Events)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
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 : Sélectionner tout - Visualiser dans une fenêtre à part
javax.servlet.ServletException: javax.servlet.jsp.JspException: Error getting property 'eventsId' from bean of type org.hibernate.collection.PersistentSet
L'erreur à lieu lorsque ma JSF tente d'accéder aux évènements contenus dans l'instance de Person:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<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.