Galera,
hoje passei a tarde toda com um problema. Quando vou dar um find, a minha sessao é finalizada e tenho o seguinte erro no Console.
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: br.gov.anac.sisrh.ferias.entidades.VigenciaFerias.listaSolicitacaoFerias, no session or session was closed
)
Algum "Mister M " (risos) pode me dar uma ajuda?
Abraços
Como você obtem essa session?
Por quê não valida se está aberta/válida antes de recuperá-la?
O mais engraçado é que o erro só acontece quando essa lista está populada. Quando ela está vazia, funciona perfeitamente.
Como vc mapeou essa coleção?
Vc ta dando um get nela, ta buscando atraves de algum metodo, como esta pegando ela?
Através de um método. Quando a lista está populada e vou debugando, dou um get na lista e tenho o seguinte erro:
com.sun.jdi.InvocationException occurred invoking method.
e no console aparece
org.hibernate.LazyInitializationException: illegal access to loading collection
Teria como eu criar uma “Sessao eterna”?
Este erro provavelmente ocorre pq vc possui apenas um proxy apontando para a coleção, o objeto não a possui de fato, vc tem duas opções para pegar essa coleção, alterar o mapeamento do hibernate, colocando lazy=false (a forma de fazer isso vai depender de vc estar usando xml ou anotação), ou fazer uma busca direta no banco e não pegar ela com o get como vc disse q esta fazendo!
[quote=thiagocg]Este erro provavelmente ocorre pq vc possui apenas um proxy apontando para a coleção, o objeto não a possui de fato, vc tem duas opções para pegar essa coleção, alterar o mapeamento do hibernate, colocando lazy=false (a forma de fazer isso vai depender de vc estar usando xml ou anotação), ou fazer uma busca direta no banco e não pegar ela com o get como vc disse q esta fazendo!
[/quote]
O Grande problema é que a sessao morre qndo dou o find. Nao entendo o pq
[quote=thiagocg]Este erro provavelmente ocorre pq vc possui apenas um proxy apontando para a coleção, o objeto não a possui de fato, vc tem duas opções para pegar essa coleção, alterar o mapeamento do hibernate, colocando lazy=false (a forma de fazer isso vai depender de vc estar usando xml ou anotação), ou fazer uma busca direta no banco e não pegar ela com o get como vc disse q esta fazendo!
[/quote]
Neste link tem exatamente o que está acontecendo, mas a galera nao deu solução
http://www.guj.com.br/posts/list/51737.java
[quote=thiagocg]Este erro provavelmente ocorre pq vc possui apenas um proxy apontando para a coleção, o objeto não a possui de fato, vc tem duas opções para pegar essa coleção, alterar o mapeamento do hibernate, colocando lazy=false (a forma de fazer isso vai depender de vc estar usando xml ou anotação), ou fazer uma busca direta no banco e não pegar ela com o get como vc disse q esta fazendo!
[/quote]
Neste link tem exatamente o que está acontecendo, mas a galera nao deu solução
http://www.guj.com.br/posts/list/51737.java