IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Lazy loading


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Lazy loading
    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.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Points : 63
    Points
    63
    Par défaut
    Dans le controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    products = catalogBean.findProductsByCategory(getParamId("categoryId"));
    Dans l'EJB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public List<Product> findProductsByCategory(final Long categoryId) {
        Category category = em.find(Category.class, categoryId);
        return category.getProducts();
    }
    Par contre products.displayed ??? products étant une liste à quoi correspond displayed ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    salut,


    products.displayed est un "string" qui sert a la navigation des pages, c'est pas important ici.

    En ce qui concerne ta solution , effectivement sa marche.
    Mais j'aurais voulu appeler la merthode category.getProducts()
    dans le controller...
    C'est possible, ou il faut que je laisse tomber??

    merci.

Discussions similaires

  1. spring2 hibernate3 : lazy loading
    Par fxonline dans le forum Hibernate
    Réponses: 9
    Dernier message: 10/02/2007, 18h56
  2. Lazy loading sur component
    Par El Saigneur dans le forum Hibernate
    Réponses: 2
    Dernier message: 03/11/2006, 10h30
  3. Lazy loading et fermeture de session hibernate
    Par BRAUKRIS dans le forum Hibernate
    Réponses: 3
    Dernier message: 20/07/2006, 13h08
  4. [hibernate] problème pour desactiver le lazy loading
    Par agougeon dans le forum Hibernate
    Réponses: 2
    Dernier message: 14/03/2006, 11h20
  5. [HIBERNATE 3]Lazy loading
    Par SEMPERE Benjamin dans le forum Hibernate
    Réponses: 11
    Dernier message: 08/02/2006, 22h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo