Alguém poderia me explicar como resolver o erro acima…ja pesquisei so nao tenho certeza de como implementar…li sobre Thread Local Session e OPEN Session in view…Tentei algo como código abaixo mas parece não ter efeito…
Obrigado, Valmir
CÓDIGO:
public class HibernateSession {
public static final ThreadLocal session = new ThreadLocal();
public static Session currentSession()
throws NamingException, HibernateException {
Session s = (Session) session.get();
if (s == null) {
SessionFactory sf = (SessionFactory) new InitialContext().lookup("SessionFactory");
s = sf.openSession();
session.set(s);
}
return s;
}
public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null)
Mostra o codigo onde tu usa a Session. Voce esta fechando a session logo depois de usar? Pode ser isso, para usar lazy loding no hibernate ele requer que a session permaneça aberta enquanto usa o objeto.
LazyInitializationException ocorre quando vc esta acessando um atributo (geralmente de um relacionamento) que não foi iniciado pelo Hibernate
Quando ao fechar ou não a sessão, se vc esta uzando um projeto gerenciado (JBoss) porque gerenciar as sessões, eu geralmente prefiro deixar ele trabalhar