Bonjour,
(pour info j'utilise eclipse wtp 3.2, tomcat 5.5 hibernate 3.0 et base de donnée Mysql)
Pour commencer j'ai creé une bdd, jusque la tous va bien,
J'ai mappé la structure avec l'aide d'Hibernate.
exemple pour la table A
,
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 <hibernate-mapping> <class name="A" table="a" lazy="false"> <meta attribute="sync-DAO">false</meta> <id name="Id" type="integer" column="id_ann" > <generator class="increment"/> </id> //liste des property/attributs ... //et les "liens" <many-to-one name="m" class="M" column="id_m" unique="true" cascade="none" /> //et un lien many-to-many <set lazy="true" outer-join="true" name="liste" table="e" cascade="all" > <key column="id_a"/> <many-to-many column="id_e" class="E"/> </set>
le code de la classe A correspondante
et enfin la jsp qui affiche les infos (avec au mileu un controleur qui effectue l'interface):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class A { private Integer id; // ...liste attributs private M m; private Set liste=new HashSet(); //accesseurs + constructeurs ...
l'affichage des attributs de p sont ok,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <c:forEach var="p" items="${personnes}"> <tr> <td><c:out value="${p.id}"/></td> <td><c:out value="${p.titre}"/></td> <td><c:out value="${p.url}"/></td> <td><c:out value="${p.d}"/></td> <td><c:out value="${p.m.nomMb}"/></td> <c:forEach var="l" items="${p.liste}"> <c:out value="${l.id}"/> </c:forEach> </c:forEach>
l'affichage des attibuts de p.m sont aussi ok.
Par contre si je rajoute l'affichage de la liste j'ai droit à un message d'erreur :
je suis dispo à repondre à vos questions et preneur de toutes solutions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 failed to lazily initialize a collection of role: A.liste, no session or session was closed
,
Merci
Partager