drsmachado 11 de mai. de 2012
Lazy indica que ele não carregará as informações do relacionamento, no exato momento da pesquisa. Tente dar um Hibernate.initialize(entity) para ver se muda alguma coisa, usando Lazy.
Jr_webmaster_100_jav 11 de mai. de 2012
Onde fazer isso ? desculpe a pergunta.
Obs:. Estou utilizando hibernate com JPA
Hebert_Coelho 11 de mai. de 2012
Esse tutorial pode te ajudar: @OneToMany e @ManyToOne Unidirecional e Bidirecional .
A configuração lazy vai dentro da anotação @OneToMany . Como um parâmetro (fetchType se não me engano).
Jr_webmaster_100_jav 11 de mai. de 2012
Agradecido pelo tutorial, mas o que mostra la eu ja fiz que e somente a parte de persistir os objetos no banco.
tenho a entidade vendedor, endereco e comissao
onde um vendedor tem um endereco e varias comissoes.
insere normal no banco de dados
o problema e ao recuperar o objeto…
a List que se encontra no vendedor volta como uma PersistenceBag .
e nao vem como uma lista com os dados
Hebert_Coelho 11 de mai. de 2012
Jr webmaster 100% java:
Agradecido pelo tutorial, mas o que mostra la eu ja fiz que e somente a parte de persistir os objetos no banco.
tenho a entidade vendedor, endereco e comissao
onde um vendedor tem um endereco e varias comissoes.
insere normal no banco de dados
o problema e ao recuperar o objeto…
a List que se encontra no vendedor volta como uma PersistenceBag .
e nao vem como uma lista com os dados
Vem como uma PersistenceBag pois é isso que ele é aos olhos do JPA/Hibernate.
Você tentou iterar sobre essa lista? Teve alguma mensagem de erro?
Jr_webmaster_100_jav 11 de mai. de 2012
tentei fazer assim…
this.comissoes = this.vendedor.getComissoes();
atribuindo… mas nao deu certo.
vou tentar percorrer o persistencebag
ja posto aqui o q deu
Hebert_Coelho 11 de mai. de 2012
Jr webmaster 100% java:
tentei fazer assim…
this.comissoes = this.vendedor.getComissoes();
atribuindo… mas nao deu certo.
vou tentar percorrer o persistencebag
ja posto aqui o q deu
Pq não deu certo? Algum erro?
Jr_webmaster_100_jav 11 de mai. de 2012
quando tento percorrer a lista ele da a seguinte exception
failed to lazily initialize a collection of role: org.smartgestor.cadastro.Vendedor.comissoes, no session or session was closed
Hebert_Coelho 11 de mai. de 2012
Jr webmaster 100% java:
quando tento percorrer a lista ele da a seguinte exception
failed to lazily initialize a collection of role: org.smartgestor.cadastro.Vendedor.comissoes, no session or session was closed
Quatro soluções para LazyInitializationException [=
Jr_webmaster_100_jav 11 de mai. de 2012
resolvi cara... muuuuuuuuuuito obrigado mesmo.
Que Deus te abencoe.
resolucao:
public Vendedor recuperaVendedor ( long codigo )
{
Vendedor vend ;
Query query = EntityManagerUtil.getEntityManager().createQuery("select v from Vendedor v join fetch v.comissoes where v.iD = :codigo") ;
query.setParameter("codigo", codigo) ;
vend = null ;
try {
vend = (Vendedor)query.getSingleResult() ;
} catch ( Exception e ) {
// TODO : handle exception
}
return vend ;
}
Carregar coleção por Join Query foi minha solucao.
Obg amigo, forte abraco
Jr_webmaster_100_jav 11 de mai. de 2012
so uma duvida… se tiver duas list no objeto pai ? como faz o hql ?
por tem ainda os enderecos
Jr_webmaster_100_jav 11 de mai. de 2012
tentei colocar join fetch v.enderecos junto do hql acima e ai deu um:
cannot simultaneously fetch multiple bags
Jr_webmaster_100_jav 11 de mai. de 2012
resolvi o problema…
da seguinte maneira:
select v from Vendedor v fetch all properties where v.iD = :codigo