Appel d'une liste dans une liste (JSTL)
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:
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
Code:
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 ... |
et enfin la jsp qui affiche les infos (avec au mileu un controleur qui effectue l'interface):
Code:
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 attributs de p sont ok,
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 :
Code:
1 2
|
failed to lazily initialize a collection of role: A.liste, no session or session was closed |
je suis dispo à repondre à vos questions et preneur de toutes solutions
,
Merci