Preciso fazer uma busca pelo id de um objeto, estou fazendo assim :
public Fisica ListarUmaAdvogado(int id) throws Exception {
Fisica f = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
f =(Fisica) session.get(Fisica.class, id);
f.getAdvogado().iterator();
Estou listando uma pessoaFisica, com seus dados de advogado.
O problema é que eu preciso tbm listar uma colleção de Especialidades que este advogado tem… como inicializo essa coleção ?
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Model.Advogado.especialidade, no session or session was closed
Eu estou carregando uma PessoaFisica:f =(Fisica) session.get(Fisica.class, id) Inicializei a Collection de Advogados dessa pessoa:f.getAdvogado().iterator(); porém, nao sei como faze agora para iniciar um collection de Especialidade desse advogado, meu @ManyToMany de advogado pra especialidade esta como Lazy, nao posso usar Eager pois senao complica meus relatorios, preciso inicializar somente nesse caso.
jyoshiriro
Esse é um típico erro em aplicações WEB sem aplicação do padrão “open session in view”. É o seu caso?
RicardoYukito
é uma aplicação simples desktop.
jyoshiriro
Bem, então o objeto “session” está “closed”, ou seja, foi usado o método “close()” nele antes de solicitar a lista desejada.
RicardoYukito
realmente a sessao tava um close() antes do return , nao me atentei nisso;