Fala pessoal,
Estou tendo um problema de LazyInitializationException,[color=red] org.hibernate.LazyInitializationException: failed to lazily initialize a collection - no session or session was closed.[/color]
Pesquisando na internet achei a causa do problema no link da Caelum http://blog.caelum.com.br/enfrentando-a-lazyinitializationexception-no-hibernate/
Meu problema é igual na questão das consultas serem LAZY, porém a situação é um pouco diferente, o erro é gerado antes de chegar no JSP.
Abaixo segue o trecho de código onde é gerado o erro.
banda = (Banda)ServletActionContext.getContext().getSession().get("banda");
musicas = MusicaDAO.getByBanda( banda );
Iterator<Musica> itMusicas = musicas.iterator();
while(itMusicas.hasNext()){
Musica musicaAtual = itMusicas.next();
Iterator<Usuario> itUsuarios = musicaAtual.getUsuariosRelacionados().iterator();
...
Iterator itUsuarios = musicaAtual.getUsuariosRelacionados().iterator();
O erro é gerado na linha em destaque justamente quando uso o método getUsuariosRelacionados(), pois meu relacinamento esta como LAZY.
Mas minha questão é: Minha sessão morreu? Não consigo entender pq ele reage como se a sessao não existisse mais…
Como faço pra que o LAZY nesta situação funcione da maneira q deveria funcionar? Se eu mudo pra LAZY=“FALSE” funciona perfeitamente, porém fica muito muito lento…
Obrigado.
abcs