Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2879 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  probleme lazy loading

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme lazy loading

n°1812909
roronnoa
Posté le 17-11-2008 à 10:24:33  profilanswer
 

Bonjour,  
Je travaille en ce moment sur un application java EE5, avec jsf, ejb3, jpa…
et je rencontre l’exeption suivante :  
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.yaps.petstore.entity.catalog.Product.items, no session or session was closed
 
Voici mon code :
L’architecture est la suivante :
Jsf-->controller(managedBean)-->ejb stateless-->entityBean
 
Controller (CatalogController ):
public String doFindProducts() {
 
catalogBean=(CatalogLocal)new InitialContext().lookup("PetstoreEAR/CatalogBean/local" );
 
category = catalogBean.findCategory(getParamId("categoryId" ));
products =category.getProducts();
navigateTo = "products.displayed";
return navigateTo;
 
}

 
Ejb stateless:
 
public class CatalogBean implements CatalogRemote, CatalogLocal {
 
@PersistenceContext(unitName = "petstorePU" )
private EntityManager em;
public Category findCategory(final Long categoryId) {
 
Category category;
category = em.find(Category.class, categoryId);
return category;

}
entityBean
j’ai un entity bean product
et un entityBean category qui a comme attribut une liste de product.
 
Apres avoir cherché sur plusieurs forum j’ai cru comprendre que l’erreur peut venir du fait qu’au moment de faire products =category.getProducts();
Dans le controller, alors l’entity category n’est plus rattaché au context de persistance.
 
Mais je ne sait toujours pas comment resoudre le probleme…
 
Merci d’avance a tous ceux qui prendront le temps de lire et de repondre.

mood
Publicité
Posté le 17-11-2008 à 10:24:33  profilanswer
 

n°1814932
zapan666
Tout est relatif
Posté le 21-11-2008 à 13:39:17  profilanswer
 

roronnoa a écrit :


Apres avoir cherché sur plusieurs forum j’ai cru comprendre que l’erreur peut venir du fait qu’au moment de faire products =category.getProducts();
Dans le controller, alors l’entity category n’est plus rattaché au context de persistance.
 


Je ne dirais pas mieux.
 
 
Soit la connexion au serveur bdd est fermé
Soit tu récupère ton objet, tu ferme ta session, tu rouvre une autre session, et tu essaye d'accéder a ton champ (et comme la session a changé, c'est plus possible)


---------------
my flick r - Just Tab it !
n°1814942
polo_po
Posté le 21-11-2008 à 13:55:49  profilanswer
 

Il faudrait que l'objet appellant soit lui même un EJB session, ou alors forcer la lecture des produits avant de retourner la categorie, ce qui n'est pas très joli et peut-être pénalisant en terme de perfs...  
 
public Category findCategory(final Long categoryId) {  
 
Category category;  
category = em.find(Category.class, categoryId);  
category.getProducts().size();
return category;  
}  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  probleme lazy loading

 

Sujets relatifs
Problème courant du tableau 2D[resolu]préremplir une case de FORMulaire : probleme avec guillemets
Problème IE6, et oui, encore 15% des internautes !!probleme de css avec input
probleme css dans fichier .php[Batch] xcopy et le changement d'heure, problème "à la con" !
Problème avec la dernière version d'EasyPHPProblème de procédure de maj bd, je suis bloqué !!
Problème avec imagejpegProbleme affichage simpleviewer avec firefox
Plus de sujets relatifs à : probleme lazy loading


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR