Ola, estou tendo um problema no hibernate e nao tenho ideia de porque esta ocorrendo esse erro:
09:15:11,883 ERROR LazyInitializationException:19 - could not initialize proxy - no Session
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
at org.iprogramming.model.persistence.dto.Person$$EnhancerByCGLIB$$4dfa7473.getName(<generated>)
Por favor, alguem pode me ajudar a resolver ?
Desde ja muito obrigado
qd modifico fazendo a xamada do campos do objeto antes de fechar a sessao o erro “could not initialize proxy - no Session” fica dando agora na xamado do metodo para consultar a tabela e nao qd vou consultar algum campo do objeto
Essa exception ocorre porque voce fechou a sessão do hibernate (ou entitymanager do JPA usando hibernate). Provavelmente voces estao fechando a sessao/entityManager antes de renderizar a pagina, isso é, antes de fazer o dispatch!
bem, acontece q tenho uma classe dao q tem esse metodo que consulta a tabela do banco e retorna um list
na minha classe que tem os componentes swing eu xamo esse metodo e quando tento ver qualuer campo do objeto, menos o id, ele da esse erro
acontece q tenho varios metodos mt semelhantes, so mudando os objetos que sao retornados de acordo com oq eu kero, e soh esse esta dando problema, nada de muito difente
Cara, é o seguinte…
Quando você faz um Select ou um List no Hibernate, a coleção retornada fica presa na sessão e só está populada enquando a sessão (SessionFactory) estiver aberta.
A solução que eu encontrei foi colocar a coleção em um objeto fora da Session factory.
Exemplo de Select:
public Papel Select(String pk) throws Exception{
Session session = factory.openSession();
Papel papel = (Papel)session.load(Papel.class, pk);
Papel ret = new Papel();
ret.setNome(papel.getNome());
ret.setDescricao(papel.getDescricao());
session.flush();
session.close();
return ret;
}
Essa exception ocorre porque voce fechou a sessão do hibernate (ou entitymanager do JPA usando hibernate). Provavelmente voces estao fechando a sessao/entityManager antes de renderizar a pagina, isso é, antes de fazer o dispatch!