SessionBean, JPA e LazyInitializationException

3 respostas
guigouz

SEVERE: failed to lazily initialize a collection of role: br.com.prosoma.memoria.entidades.Bem.registrosConservacao, no session or session was closed org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: br.com.prosoma.memoria.entidades.Bem.registrosConservacao, no session or session was closed

Seguinte… Meu app-client (swing) pega uma lista de ids do server (Até aí, tudo bem) e quando escolho um, lê a entidade pelo bean (stateless)

@PersistenceContext(type=PersistenceContextType.TRANSACTION)
    private EntityManager em;
    
    public Bem porId(String id) {
        
        Bem b =  em.find(Bem.class, Long.parseLong(id));
        
        // Hibernate.initialize(b);
        return b;
    }

O Hibernate.initialize() tá comentado, mas também não funciona com ele. Já troquei, na Entidade, as relações que eram List pra Set e mesmo assim nada. O PesistenceContextType.TRANSACTION coloquei baseado em outros posts daqui (assim como o Hibernate.initialize)

Existe alguma documentação “certa” sobre este cenário ?

Agradeço qualquer ajuda

3 Respostas

guigouz
public Bem porId(String id) {
        
        Bem b =  em.find(Bem.class, Long.parseLong(id));
        
        Hibernate.initialize(b.getFichas());
        Hibernate.initialize(b.getImagens());
        Hibernate.initialize(b.getRegistrosConservacao());
        return b;
    }

Resolveu por enquanto… se alguém tiver uma saída melhor (de preferência que não precise do Hibernate) avise.

N

Você conseguiu uma resposta padrão JPA para essa resposta ? Sem ter que recorrer ao Hibernate ?

guigouz

Não, continuo dependendo do Hibernate, mas pelo menos por enquanto, nem arrisco usar outra implementação JPA.

Criado 22 de janeiro de 2008
Ultima resposta 3 de mar. de 2008
Respostas 3
Participantes 2