Erro JPA + LazyInitializationException

2 respostas
santoro

Pessoal estou com o seguinte problema, utilizo JPA, logo pego meu entity manager assim

@PersistenceContext(unitName="unitTeste", type=PersistenceContextType.TRANSACTION) 
  private EntityManager em;

//gets

ou seja não tenho um HibernateUtil.

Na minha entidade eu fiz um relacinamento do tipo

@ManyToOne(fetch=FetchType.LAZY)

exatamente para evitar que tragam dados que eu não queria, até onde eu sei o JPA utiliza EAGER por padrão

O meu EJB eu setei como @Stateless e na minha query utilizei o seguinte

public List<MinhaClasse> buscar(String parametro) throws VoException{
		String sql = "SELECT minhaClasse"+
				" FROM MinhaClasse minhaClasse"+
				" LEFT JOIN FETCH minhaClasse.outraClasse1"+
				" LEFT JOIN FETCH minhaClasse.outraClasse2"+
				" LEFT JOIN FETCH minhaClasse.outraClasse3"+
					" WHERE minhaClasse.parametro = :parametro";
		try {
			return getEntityManager().createQuery(sql)
					.setParameter("parametro", parametro)
					.getResultList();
		} catch (Exception e) {
			...
		}
	}

porém ao rodar está dando o seguinte erro:

Caused by: org.hibernate.LazyInitializationException: could not initialize proxy - no Session

uma questão NÃO USO SPRING e a como quem gerencia a conexão é o JBoss também não fecho a sessão na mão.

Alguém tem alguma idéia do que posso fazer?

2 Respostas

Hebert_Coelho

Leia aqui: Quatro soluções para LazyInitializationException.

[=

rafael_jesus

Da uma olhada nesse nesse código aqui https://github.com/gscordeiro/faces-motors/tree/master/src/br/com/casadocodigo/jsfjpa/persistence

É o Open Session in View…

Mas leio os tutos acima para entender melhor…

Abrcs

Criado 8 de novembro de 2012
Ultima resposta 8 de nov. de 2012
Respostas 2
Participantes 3