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 :

Lazy Initialization Exception


Sujet :

Spring Java

  1. #1
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Par défaut Lazy Initialization Exception
    Bonjour

    J'ai une relation many to one entre employes et salary
    masi j'ai eu cette exception
    Lazy Initialization Exception??

    pourriez vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @ManyToOne(fetch = FetchType.LAZY )
    	@JoinColumn(name = "employes_ID")
    	public Employes getEmployes() {
    		return this.employes;
    	}
     
    	public void setEmployes(Employes employes) {
    		this.employes = employes;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "employes")
    	public Set<Salary> getSalaries() {
    		return this.salaries;
    	}
     
    	public void setSalaries(Set<Salary> salaries) {
    		this.salaries = salaries;
    	}
    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
    18
    19
    20
    21
    org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
    	org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60)
    	org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
    	org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:172)
    	com.proxymit.grh.model.Employes$$EnhancerByCGLIB$$f816d58b.toString(<generated>)
    	org.springframework.util.ObjectUtils.nullSafeToString(ObjectUtils.java:547)
    	org.springframework.util.ObjectUtils.getDisplayString(ObjectUtils.java:493)
    	org.springframework.web.servlet.tags.form.SelectedValueComparator.exhaustiveCompare(SelectedValueComparator.java:181)
    	org.springframework.web.servlet.tags.form.SelectedValueComparator.isSelected(SelectedValueComparator.java:105)
    	org.springframework.web.servlet.tags.form.OptionWriter.isOptionSelected(OptionWriter.java:233)
    	org.springframework.web.servlet.tags.form.OptionWriter.renderOption(OptionWriter.java:210)
    	org.springframework.web.servlet.tags.form.OptionWriter.doRenderFromCollection(OptionWriter.java:192)
    	org.springframework.web.servlet.tags.form.OptionWriter.renderFromCollection(OptionWriter.java:177)
    	org.springframework.web.servlet.tags.form.OptionWriter.writeOptions(OptionWriter.java:132)
    	org.springframework.web.servlet.tags.form.OptionsTag.writeTagContent(OptionsTag.java:158)
    	org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:90)
    	org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:77)
    	org.apache.jsp.WEB_002dINF.jsp.editSalary_jsp._jspx_meth_form_005foptions_005f0(editSalary_jsp.java:287)
    	org.apache.jsp.WEB_002dINF.jsp.editSalary_jsp._jspx_meth_form_005fselect_005f0(editSalary_jsp.java:246)
    	org.apache.jsp.WEB_002dINF.jsp.editSalary_jsp._jspx_meth_form_005fform_005f0(editSalary_jsp.java:192)
    	org.apache.jsp.WEB_002dINF.jsp.editSalary_jsp._jspService(editSalary_jsp.java:101)
    ??

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu utilises le mode lazy donc les données qui vont être récupérées quand tu vas utiliser la méthode getSalaires() ne seront cherchées dans la base de données qu'à l'appel de la méthode getSalaires().

    Dans ton cas, la session qui a créé l'objet (celui avec getSalaires()) est déja fermée lorsque tu appelles la méthode getSalaires() il ne peut donc pas récupérer les données dans la base.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Par défaut
    Citation Envoyé par Baptiste Wicht Voir le message
    Tu utilises le mode lazy donc les données qui vont être récupérées quand tu vas utiliser la méthode getSalaires() ne seront cherchées dans la base de données qu'à l'appel de la méthode getSalaires().

    Dans ton cas, la session qui a créé l'objet (celui avec getSalaires()) est déja fermée lorsque tu appelles la méthode getSalaires() il ne peut donc pas récupérer les données dans la base.
    merci

    j'ai fait ça et ça a marché

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Table(name = ".. ", catalog = " ..")
    @Proxy(lazy=false)

Discussions similaires

  1. Eager (failed to lazy initialize)
    Par palgaz dans le forum JPA
    Réponses: 2
    Dernier message: 21/04/2012, 15h51
  2. Réponses: 0
    Dernier message: 30/08/2011, 09h12
  3. [Integration] Lazy-initialized MBeans marche pas
    Par gifffftane dans le forum Spring
    Réponses: 3
    Dernier message: 11/11/2008, 10h35
  4. [Lazy Loading] Exception à la lecture d une collection
    Par julienOriano dans le forum Hibernate
    Réponses: 4
    Dernier message: 04/06/2007, 11h56
  5. [Encoding]Exception during runtime initialization
    Par gdawirs dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/11/2005, 09h08

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