failed to lazily initialize a collection  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
Deluxe
GUJ Ranger
[Avatar]

Membro desde: 26/04/2006 15:50:49
Mensagens: 793
Localização: Distrito Federal
Offline

Pessoal
tenho uma classe que tem uma lista dentro dela

classe:




Quando eu executo esse método





o erro acontece




Alguem sabe pq isso?
eu não entendo, se colocar EAGER, ai funciona tudo certinho
o problema que pesa minha aplicação.
Alguem sabe resolver esse problema ?
é alguma configuração de hibernate etc?

Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensiar o que eu não sei...
Deluxe
GUJ Ranger
[Avatar]

Membro desde: 26/04/2006 15:50:49
Mensagens: 793
Localização: Distrito Federal
Offline

ninguem nunca passou por isso

Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensiar o que eu não sei...
fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

Se não quiser usar EAGER, então em cada consulta vc precisa acordar o relacionamento.
Se estiver usando Criteria, vc deve usar essa função.


E mais docs sobre isso
http://docs.jboss.org/hibernate/stable/core/reference/en/html/performance.html
[WWW] [MSN] [ICQ]
bronx
JavaTeenager
[Avatar]

Membro desde: 24/08/2009 02:59:47
Mensagens: 197
Offline

Esse erro ocorre quando você define uma Collection (List, Set etc) com fetchmode lazy e tenta acessar esse atributo após ter fechado a sessão do hibernate ou após esse objeto ter passado para o estado detached.
Sugiro que você utilize crie um filtro na tua servlet que abra e feche a sessão do Hibernate, garantindo que ela esteja sempre disponível durante todo o lifecycle da app.

Saca só:



E o HibernateUtil:

This message was edited 1 time. Last update was at 18/09/2009 15:58:01

bronx
JavaTeenager
[Avatar]

Membro desde: 24/08/2009 02:59:47
Mensagens: 197
Offline

Ah! Se o teu objeto saiu do managed e foi pro detached state, só dar um update no objeto que resolve.
Mas recomendo dar um merge antes, para evitar a exception de redundância no cache do hibernate!

This message was edited 1 time. Last update was at 18/09/2009 16:03:10

prog.tiago
Java Ninja
[Avatar]

Membro desde: 21/03/2010 20:03:58
Mensagens: 266
Localização: São Bernardo do Campo
Offline

Olá bronx,

O exemplo de filtro que você deu foi muito útil para um problema que estava arrancando meus cabelos.

Obrigado

Abraço

--
Tiago Silva
@progtiago





[Email]
princext
Thread.start()

Membro desde: 18/12/2009 08:58:15
Mensagens: 38
Offline

se sua appweb tiver Spring, no web.xml tem um filtro que vc coloca pra sessao do hibernate continuar aberta pra nao dar esse erro.. so nao lembro qual mas eh uma dica de start..
bronx
JavaTeenager
[Avatar]

Membro desde: 24/08/2009 02:59:47
Mensagens: 197
Offline

Legal, Thiago.

É essencial entender esse lance dos estados do Hibernate.

A documentação do Hibernate é riquíssima, vale muito a pena gastar um tempo no site deles lendo-a! =D
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team