| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2005 09:14:58
|
smorigo
Java Ninja
![[Avatar]](/images/avatar/9bd5ee6fe55aaeb673025dbcb8f939c1.jpg)
Membro desde: 20/05/2004 07:49:08
Mensagens: 250
Offline
|
Bom dia pessoal estou começando a usar Hibernate 3 e estou recebendo está mensagem:
Pelo que eu entendi ele está reclamando do meu getRazaoSocial() já olhei tudo e não encontrei nada de anormal... isso é alguma configuração ?
valeu.....
This message was edited 1 time. Last update was at 23/04/2005 09:15:22
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2005 09:41:41
|
leomc
JavaGuru
![[Avatar]](/images/avatar/60519c3dd22587d6de04d5f1e28bd41d.png)
Membro desde: 16/02/2004 21:39:45
Mensagens: 216
Localização: Brasília - DF
Offline
|
Este erro acontece quando vc tenta dar um get em um atributo que está lazy="true" no hbm e a sessao do hibernate já está fechada. Existem várias formas de contornar isso, fala mais da sua arquitetura pra ter como dar uma dica pra vc...
|
[]'s Léo
Melhores Destinos - passagens aereas profissionais
http://www.leonardomarques.net |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2005 09:58:18
|
smorigo
Java Ninja
![[Avatar]](/images/avatar/9bd5ee6fe55aaeb673025dbcb8f939c1.jpg)
Membro desde: 20/05/2004 07:49:08
Mensagens: 250
Offline
|
Olha só a arquitetura é a seguinte:
1) Criei um formBean no meu struts-config.xml
2) Criei JavaBean
3) Criei um DAO
4) Meu mapeamento está dessa maneira:
Bem fora isso tenho uma classe de ConnectionFactory e o arquivo de configuração da conexão com meu BD que é Firebird...
valeuuuu
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2005 13:26:22
|
hmichel
Virtual Machine Man
![[Avatar]](/images/avatar/db8e1af0cb3aca1ae2d0018624204529.png)
Membro desde: 03/11/2002 16:54:53
Mensagens: 611
Localização: Morro da Fumaça - SC
Offline
|
leomc wrote:Existem várias formas de contornar ...
Quais por exemplo?
[]'s
This message was edited 1 time. Last update was at 23/04/2005 13:27:19
|
Michel Graciano |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2005 16:35:18
|
smorigo
Java Ninja
![[Avatar]](/images/avatar/9bd5ee6fe55aaeb673025dbcb8f939c1.jpg)
Membro desde: 20/05/2004 07:49:08
Mensagens: 250
Offline
|
Bom estive lendo um pouco não consegui achar a solução mais acredito que o erro deva estar no meu ConnectionFactory
This message was edited 1 time. Last update was at 23/04/2005 17:10:23
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2005 18:56:24
|
smorigo
Java Ninja
![[Avatar]](/images/avatar/9bd5ee6fe55aaeb673025dbcb8f939c1.jpg)
Membro desde: 20/05/2004 07:49:08
Mensagens: 250
Offline
|
deixei a sessão aberta e ele funciono... alguém tem alguma dica de como solucionar o problema??? estou ficando doidooo rsss
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 09:13:21
|
Alexandre Possebom
Thread.start()
Membro desde: 03/04/2006 08:06:08
Mensagens: 32
Offline
|
Mude de :
para :
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2008 00:00:09
|
paulohrl
Virtual Machine Man
Membro desde: 12/01/2007 23:35:34
Mensagens: 611
Offline
|
Gente, desculpa desenterrar esse post, mas estava tendo o mesmo problema, de Lazy Initialization Exception.
Troquei o load pelo get como sugerido pelo amigo Alexandre Possebom e funcionou, mas gostaria de entender o porque. Qual a diferença entre eles?
Obrigado desde já
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2008 00:33:57
|
Deh
JavaGuru
![[Avatar]](/images/avatar/bac4cbb6173335e862a1b3df635ee3ba.jpg)
Membro desde: 18/04/2006 23:02:24
Mensagens: 244
Localização: Florianópolis - SC
Offline
|
Basicamente load retorna uma proxy, e get retorna o objeto.
Como a Session do cara tinha side fechada, e ele pegava uma LazyInitializationException quando tentava usar o proxy do objeto.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2008 00:37:15
|
paulohrl
Virtual Machine Man
Membro desde: 12/01/2007 23:35:34
Mensagens: 611
Offline
|
Olha o meu caso:
to usando o vRaptor e hibernate. Sempre faço uma solicitação para um logic. Tenho somente uma página, que tem um corpo onde faz várias requisições AJAX. Na primeira requisição AJAX, depois de abrir a página inicial, ocorre tudo sem problemas, ja na segunda, ocorre a excessão. Todas as páginas requisitadas utilizam o acesso ao banco. Passam por um interceptor q cria uma sessão e no final a fecha. Qual pode ser o problema? E porque com o get não ocorre?
É melhor usar o get do que o load ou o contrário? Ou tanto faz em questão de desempenho?
Valew
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2008 00:44:20
|
Deh
JavaGuru
![[Avatar]](/images/avatar/bac4cbb6173335e862a1b3df635ee3ba.jpg)
Membro desde: 18/04/2006 23:02:24
Mensagens: 244
Localização: Florianópolis - SC
Offline
|
Quanto ao desempenho o load é melhor pois só vai puxar os dados na hora que você usa-los, ele retorna uma proxy.
leia isso para entender melhor sobre o desempenho: http://www.hibernate.org/hib_docs/reference/en/html/performance.html
Quanto ao seu problema, com o get ele retorna o objeto na hora que você chama o get. Com o load, ele retorna uma proxy, e como não tem sessão o hibernate não consegue inicializar o Objeto e logo lança a excessão.
Links que lhe vão ser úteis:
Sobre Sessions: http://www.hibernate.org/42.html
Sobre OpenSessionInView: http://www.hibernate.org/43.html
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2008 00:52:07
|
paulohrl
Virtual Machine Man
Membro desde: 12/01/2007 23:35:34
Mensagens: 611
Offline
|
Então cara,
No meu Interceptor eu crio uma instância de um DaoFactory:
e no construtor do DaoFactory cria uma Session
Então não entendi porque está me acusando que não tenho uma sessão.
Desculpa ficar incomodando, mas essa dúvida ta me tirando horas de sono ha dias...
Valew
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2008 01:07:57
|
Deh
JavaGuru
![[Avatar]](/images/avatar/bac4cbb6173335e862a1b3df635ee3ba.jpg)
Membro desde: 18/04/2006 23:02:24
Mensagens: 244
Localização: Florianópolis - SC
Offline
|
Olhando por cima parece estar tudo certo(mas ta tarde já, então não tenho 100% de certeza)... tem certeza que não tem algo fechando a conexão antes de usares o objeto carregado com o proxy?
Tenta chamar session.isOpen() pra ver se a sessão ainda está aberta quando fores utilizar o objeto carregado pelo .load
Também tem o Hibernate.initializate(Object obj) pra forçar a inicialização da proxy.
ninguem eh de ferro.. também to com sono aqui hahaha
Boa noite
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2008 10:49:06
|
paulohrl
Virtual Machine Man
Membro desde: 12/01/2007 23:35:34
Mensagens: 611
Offline
|
Vou por o isOpen para ver se ainda está aberta...
Valew
Depois posto o resultado.
Espero que positivo.
|
|
|
 |
|
|