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

Hibernate Java Discussion :

Recherche de session pour une requête hibernate


Sujet :

Hibernate Java

  1. #1
    Membre régulier Avatar de Palsajicoco
    Étudiant
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 84
    Points
    84
    Par défaut Recherche de session pour une requête hibernate
    Salut,

    J'ai une classe java qui correspond a une table dans la base de donnée. cette table a une clé étrangère dans une autre table. Si on considère la première table table1 et la deuxième table table2, table a devrai avoir une variable set qui va contenir les entrée de la table2 vue la relation entre eux. pour chaque élément de table1 j'ai une liste d’éléments de table2. J'ai une méthode set getTable2() qui sonne un set d’éléments de la table2 pour l’élément table1 correspondant. Le problème est si j'instancie table1 et et met getTable2, j'ai une erreur de session .. Il me semble que je devrai ouvrir une session mais j#ai pas su comment.
    Voici l'erreur:

    21:20:13,411 ERROR LazyInitializationException:42 - failed to lazily initialize a collection of role: com.Table1.Table2, no session or session was closed
    J’espère avoir de l'aide.

  2. #2
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    L'erreur est que quand tu vas chercher ton objet Table1, ton set de Table2 est ramené de façon "lazy", c'est à dire qu'il n'y a qu'un proxy qui, tant que la session est ouverte est accessible et peut ramener l'objet complet, mais ensuite déclenchera l'exception générée.

    2 solutions :
    - ou bien ta volumétrie n'est pas énorme, et de toute façon tu auras toujours besoin d'accéder à ton set de Table2 quand tu récupères un Table1 : tu enlèves le comportement lazy.
    - ou bien tu n'auras besoin d'accéder à ton set de Table2 que dans certains cas bien précis : tu crées une méthode qui, quand elle va te récupérer Table1, va aussi récupérer le set de Table2.

  3. #3
    Membre régulier Avatar de Palsajicoco
    Étudiant
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 84
    Points
    84
    Par défaut
    Merci pour votre réponse,

    J'ai pu tourmenter le problème en enlevant le commit a la fin de la session, Actuellement ça marche très bien mais est-ce une bonne pratique?

Discussions similaires

  1. Recherche de l'aide pour une requête
    Par un_passant dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/03/2012, 10h50
  2. Session pas transmise pour une requête
    Par WillyPayne dans le forum Struts 1
    Réponses: 3
    Dernier message: 10/02/2011, 17h36
  3. Réponses: 4
    Dernier message: 02/09/2008, 21h57
  4. Réponses: 5
    Dernier message: 18/10/2006, 16h54
  5. Réponses: 2
    Dernier message: 02/03/2006, 11h57

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