fonctionnement de l'attribut lazy
Bonjour,
J'ai un fichier de mapping pour l'objet Procedure dans lequel je mappe une collection listeMail et je mets l'attribut "lazy" à "true". Donc quand je charge un objet Procedure la collection listeMail n'est pas chargée automatiquement. C'est parfais !
Du coup quand je fais Procedure.getListeMail() il me provoque une erreur qui est la suivante :
Code:
1 2 3
|
ERROR [http-8080-Processor25] (LazyInitializationException.java:19) - failed to lazily initialize a collection of role: bean.Procedure.listeMail, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: bean.Procedure.listeMail, no session or session was closed |
Est ce que quand je fais Procedure.getListeMail(), un simple getteur il essaie de se connecter à la base ???
J'ai essayer de modifier ma méthode comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
/**
* @return Returns the listeMail.
*/
public Set getListeMail() {
Session s = null;
Set listeMail = null;
try{
// Ouverture de la session de connection à la BD
s = HibernateUtil.getCurrentSession();
return listeMail;
} catch (HibernateException e) {
e.printStackTrace();
if (s!= null) s.getTransaction().rollback();
oLogger.error("Procedure-getListeMail : Erreur hibernate " + e.getMessage());
}
finally{
// Fermeture de la session de connection à la BD
HibernateUtil.closeSession();
}
return listeMail;
} |
Mais bien sur ca marche pas !
Auriez vous des suggestions ?
Merci