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

Spring Java Discussion :

@Transaction et Lazy Loading


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Par défaut @Transaction et Lazy Loading
    Bonjour!
    J'aimerai vous faire part de mon problème: j'obtient toujours la Lazyinitialisation exception: no session or session was closed.
    j'ai une couche service qui récupère un employé et retourne son conjoint.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    import org.springframework.transaction.annotation.Transactional;
    ...
    private IPersonnelDAO personnelDAO;
    ...
    @Autowired
    	public void setPersonnelDAO(IPersonnelDAO personnelDAO){
    		this.personnelDAO = personnelDAO;
    	}
    ...
    @RemotingInclude
    @Transactional
    public Conjoint getConjoint(Integer personnelID)
    {
    	Personnel p = personnelDAO.load(personnelID);		
    	return p.getConjoint();
    }
    la méthode load permet de retourner un employé

    voici le code de l'entité employé sur la relation avec l'entité conjoint:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @OneToOne(fetch = FetchType.LAZY,cascade=CascadeType.ALL)
    @JoinColumn(name="idconjoint")
    public Conjoint getConjoint() {
    		return this.conjoint;
    }
    je ne comprend pas pourquoi l'exception précise qu'il n'y a pas de session, or l'annotation @Transactionnal ne permet il pas d'effectuer toutes les opérations dans la méthode dans une même session?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    A quel endroit l'exception est lancée ?
    Dans la vue ?

  3. #3
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    ça c'est un problème connue hibernate spring il te faut un filtre de la session par request dans ton web.xml

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Par défaut résolu
    ça y est je crois que j'ai résolu le problème (temporairement, parce que j'ai pas d'autre solution pour l'instant).
    J'ai oublié de préciser que j'utilisais BlazeDS pour le remoting service et Flex pour la vue.
    L'exception est lancé lors de la sérialisation dans BlazeDS!
    Je crois que le problème vient du fait que l'attribut conjoint n'est pas encore initialisé alors que la sérialisation tente de récupérer sa valeur. Donc j'ai fait un appel explicite pour l'initialiser . je ne sais pas si c'est la meilleur solution mais ça marche pour l'instant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @RemotingInclude
    @Transactional
    public Conjoint getConjoint(Integer personnelID)
    {
    	Personnel p = personnelDAO.load(personnelID);
    	Conjoint c = p.getConjoint();
            c.getNom();
    	return c;
    }

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