Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Frameworks
Frameworks Forum d'entraide sur les frameworks Web Java (Struts, JSF, Seam, GWT, Wicket, Tapestry, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/07/2012, 11h45   #1
Kirikou12
Invité de passage
 
Homme Brems Dali
Inscription : juillet 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Brems Dali

Informations forums :
Inscription : juillet 2010
Messages : 16
Points : 4
Points : 4
Par défaut no session or session was closed

Bonjour,

J'envisage toujours le même problème avec Hibernate, je m'explique:

Je récupère une liste d’évènement de ma BDD, dans un 'Set', dans chq evnt il y a des participants je dois afficher chq evnt suivi de sa liste de participant, le problème est la: qd j'essaye d’accéder a la liste des participant l'exception suivante se lève:

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: metier.Evenement.Participants, no session or session was closed

Les fichiers de mapping:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<class name="Evenement" table="event" lazy="true">
		<id name="code" type="integer" column="code">
			<generator class="native" />
		</id>
 
		<property name="nom" />		
		<property name="date" type="date"/>
 
               <set name="Participants" inverse="true" cascade="all" fetch="join">
			<key>
				<column name="code" />
			</key>
			<one-to-many class="Membre" />
		</set>
</class>
Servlet:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
public class ActionChargerClssmnt extends Action{	
 
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		ArrayList<Evenement> tab1;
 
		DAOEvent dao = DAOEventHBM.getInstance();
 
		tab1 = dao.load();	
 
 
		request.setAttribute("Liste_Evnt", tab1);
		return mapping.findForward("succes");
}
Jsp:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<logic:iterate id="clssmnt" name="Liste_Cat" scope="request">			
			<strong> <bean:write name="clssmnt" property="nom" />:	</strong>
			<br/>	
 
			<logic:iterate id="score" name="clssmnt" property="classements">			
			Id membre: <bean:write name="score" property="code.codeMbr" />, 
			 son score: <bean:write name="score" property="score" />
			<br/>	
 
			</logic:iterate>
	</logic:iterate>
Kirikou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2012, 14h16   #2
Mathieu.J
Modérateur
 
Homme Mathieu
Ingénieur développement logiciels
Inscription : avril 2004
Messages : 1 180
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2004
Messages : 1 180
Points : 1 828
Points : 1 828
T'as du te tromper de JSP ou de DAO car tu nous montre un DAO qui charge des Evenement et une JPS qui affiche des catégories/classement.


Cela dit, ton problème vient du fait que tes relations sont en mode LAZY. Une fois au niveau WEB tes entités sont détachées de ta session et quand tu accède à ta propriété tu as l'exception LazyInitializationException.

Soit tu les passes en mode EAGER pour que tout soit chargé dès le départ.
Soit tu laisses en mode LAZY et tu effectues l'accès à la propriété dans ta session avant de le faire au niveau web.
Mathieu.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h58.


 
 
 
 
Partenaires

Hébergement Web