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 :

Session Hibernate recalcitrante


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2007
    Messages : 71
    Points : 62
    Points
    62
    Par défaut Session Hibernate recalcitrante
    Bonjour à tous,

    je travaille sur un projet de Web Services utilisant Hibernate. J'ai utilisé plusieurs fois le lazy-loading et la session Hibernate avec succès (ou tout du moins me semble-t-il) pour le chargement de différentes collections. Cependant, il m'arrive d'avoir des collections pour lesquelles cela ne marche pas, l'erreur indiquant que la session Hibernate a été fermée (???) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: bo.entite.action.HistoriqueDossier.cles, no session or session was closed
    Il faut savoir que mes fonctions WebServices appellent une couche Métier dans laquelle se produit l'erreur. Pour information, cette même couche métier utilise une couche DAO.

    J'ai en fait l'impression que mes fonctions de la couche métier ne sont pas touchées (ou tout du moins pas toutes) par la session Hibernate configurée dans le fichier Web.xml suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <filter>
         <filter-name>hibernateFilter</filter-name>
         <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter>
     
    <filter-mapping>
         <filter-name>hibernateFilter</filter-name>
         <url-pattern>/services/*</url-pattern>
    </filter-mapping>
    Merci par avance pour vos réponses,
    MiniMarch

  2. #2
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Points : 99
    Points
    99
    Par défaut
    salut,
    j'ai le même problème aussi.
    si quelqu'un a une idée je suis preneur.
    merci.

  3. #3
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Clairement, ce message indique effectivement que la session a déjà été fermée.
    La gestion du problème dépend de la façon dont la session est gérée. Tu utilises également le OpenSessionInViewFilter ?
    Si oui, stockes tu des beans en session http ?

  4. #4
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Points : 99
    Points
    99
    Par défaut
    salut,

    merci pour ta réponse.en ce qui me concerne je n'utilise pas spring.
    dans mon projet c'est jsf+shale(parti contrôleur)+hibernate.

    j'explique plus mon problème: j'exécute une action qui me sauvegarde un cv en base de donnée. l'action s'exécute normalement une première fois. quant je veux re sauvegarde mon cv(après avoir apporter des modification).l'action ne s'exécute pas et ça me donne l'erreur suivante:

    ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: cv.Cv.competences, no session or session was closed.

    PS: mes beans sont bien stocké en session http.


    merci.

  5. #5
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    C'est totalement normal alors.
    Lorsque tu accèdes la seconde fois à l'action, elle récupère le bean en session http. Mais le problème c'est que ce bean n'est pas attaché à la session hibernate courante donc lorsque tu veux accéder aux éléments qui sont en lazy, ca te donne cette erreur

Discussions similaires

  1. Réponses: 18
    Dernier message: 10/11/2006, 13h33
  2. Lazy loading et fermeture de session hibernate
    Par BRAUKRIS dans le forum Hibernate
    Réponses: 3
    Dernier message: 20/07/2006, 13h08
  3. Réponses: 6
    Dernier message: 10/07/2006, 11h55
  4. [Hibernate][Struts] Fermeture des session hibernate
    Par osopardo dans le forum Hibernate
    Réponses: 2
    Dernier message: 22/08/2005, 17h30
  5. [Hibernate][Spring] Session Hibernate initialisée
    Par mauvais_karma dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/08/2005, 13h07

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