Org.hibernate.LazyInitializationException: could not initialize proxy

por gentileza !!!

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) 

s.close();
}
}

Olá,

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.

]['s

]['s

Oi Fabio, obrigado pela ajuda…

Então eu notei que
qdo fecho a sessão s.close()[b]
e depois
return map.findForward(“ProdutoPesquisar”);da o problema

mas se deixar aberto fico dependendo do jboss p/ fechar a conexão…

qual a melhor maneira de resolver ? como disse tentei resolver com o codigo anterior mas não deu certo…

Obrigado, Valmir

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