J'ai un objet de domaine qui a un attribut qui est une collection contenant un autre objet de domaine. Cela est réalisé en utilisant un mappage Hibernate (qui effectue finalement une jointure sur une autre table). Par défaut, Hibernate semble instancier paresseusement cette collection. Cela s'avère être une bonne chose car, en fonction de ce que j'ai besoin d'afficher, je n'ai pas toujours besoin que la collection soit chargée.
Mon problème est le suivant : lorsque j'écris mes requêtes Hibernate (dans mes DAO), j'utilise ce qui suit pour ouvrir / fermer une Session :
Session session = getSessionFactory().openSession();
//query goes here using the session var
session.close();
Le problème est le suivant : lorsque Hibernate finit par charger paresseusement ma collection, la Session
a été depuis longtemps fermée ! Comment puis-je contourner cela ? Je suppose que je dois fermer la session comme je le fais actuellement...
Voici l'erreur que j'obtiens :
SEVERE: failed to lazily initialize a collection of ...