| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 14:46:16
|
elugo
JavaChild
![[Avatar]](/images/avatar/dd27f2bc962dc976d5e3115fdc6120ce.jpg)
Membro desde: 08/02/2008 15:30:54
Mensagens: 139
Localização: Campo grande ms
Offline
|
Boa tarde,
pessoal tenho duas classes "Aluno, Modalidade" e dentro de aluno tenho uma lista de modalidades!
mapeie da seguinte maneira:
ao cadastrar um novo aluno tudo funciona perfeitamente, mas ao editar, na hora de carregar a pagina de edição
de um aluno que tenha modalidades cadastradas para ele ocorre o erro de lazy:
se eu mudar o
funciona! mas eu utilizo essa classe em outros lugares, entao não seria interessante pra mim
carregar essa lista toda vez!
alguem sabe oque pode estar erra e consequentemente causando esse erro?
vlw
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 14:58:24
|
bigjoe
JavaChild
![[Avatar]](/images/avatar/45d5c43856059a4f97d43d6534be52d0.jpg)
Membro desde: 20/10/2006 14:30:40
Mensagens: 103
Localização: Rio de Janeiro
Offline
|
Meu amigo,
eu tive o mesmo problema que você e não o solucionei. A explicação que chegamos na época era que a sessão hibernate usada no momento em que os objetos eram carregados do banco durante o deploy da aplicação era uma e que as sessões que depois tentavam acessá-los eram outras, e, portanto, dava esse problema.
Nós resolvemos manter o EAGER onde era aceitável e, onde não era produtivo, usávamos HQLs para carregar os objetos, usando o 'fetch':
Com isso, os mapeamentos LAZY são recuperados. Obviamente, é uma solução ruim e tenho certeza de que há melhores. Acompanharei esse tópico em busca dessas formas mais adequadas.
Abraços,
Rodrigo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 15:04:59
|
elugo
JavaChild
![[Avatar]](/images/avatar/dd27f2bc962dc976d5e3115fdc6120ce.jpg)
Membro desde: 08/02/2008 15:30:54
Mensagens: 139
Localização: Campo grande ms
Offline
|
vlw rodrigo!!
interessante oque vcs fizeram, mas acredito que seja apenas alguma configuração no controle da sessão
e acho que a solução possa ser mais simples do que imaginamos!!
utilizando somente JPA isso não ocorre!
se alguem souber de mais uma dica fica avontade para posta-las vlw
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 15:24:37
|
bigjoe
JavaChild
![[Avatar]](/images/avatar/45d5c43856059a4f97d43d6534be52d0.jpg)
Membro desde: 20/10/2006 14:30:40
Mensagens: 103
Localização: Rio de Janeiro
Offline
|
Concordo com você, tem que haver uma solução decente, e aguardo que os colegas nos ajudem!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 15:52:51
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
Se estiver trabalhando com Criteria, pode usar esse método
E definir essa associção, somente para essa consulta, como FetchMode.JOIN (equivalente ao EAGER)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 16:10:01
|
elugo
JavaChild
![[Avatar]](/images/avatar/dd27f2bc962dc976d5e3115fdc6120ce.jpg)
Membro desde: 08/02/2008 15:30:54
Mensagens: 139
Localização: Campo grande ms
Offline
|
eai fabio blz?!!
Cara não da pra mim fazer isso pq acontece o seguinte:
eu tenho uma página de listagem de alunos cadastrados no sistema e um link editar para cada linha
note que eu utilizo o setPropertyActionListener e seto o objeto da lista detro do objeto do meu formulario para edição!
portanto eu não realizo busca desse objeto pq pego ele da lista! e esse objeto aluno tem uma lista de modalidades que esta com lazy.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 16:20:35
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
E vc não pode fazer isso antes? Na consulta da tela já preparar esse dados com o Criteria?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 16:26:20
|
elugo
JavaChild
![[Avatar]](/images/avatar/dd27f2bc962dc976d5e3115fdc6120ce.jpg)
Membro desde: 08/02/2008 15:30:54
Mensagens: 139
Localização: Campo grande ms
Offline
|
se eu fizer isso fabio, seria um peso desnecessário para minha aplicação!
por exemplo:
na listagem eu não preciso da lista de modalidades então pq eu iria busca-la? entendeu
se fosse assim eu colocaria fatchType.EAGER que funcionaria perfeitamente! já testei isso
mas não quero que essa lista venha carregada msm....
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 16:36:11
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
Ok, entendi. Bom, não sei o que vc está usando, mas então nesse momento de edição vc vai precisar
chamar algum código que faça isso, que vai até lá o banco e acorde as associações usadas.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 16:42:58
|
elugo
JavaChild
![[Avatar]](/images/avatar/dd27f2bc962dc976d5e3115fdc6120ce.jpg)
Membro desde: 08/02/2008 15:30:54
Mensagens: 139
Localização: Campo grande ms
Offline
|
é verdade!
tipo eu poderia muito bem criar um método editar e antes de encaminhar para a pagina de edição eu realizava a busca para tirar o lazy
mais ai eu teria que utilizar a sessão para encaminhar o objeto para outra pagina e eu não quero utilizar sessão!
to lendo no site da jboss uma solução curiosa para isso!!!
tipo se eu criar um método de edição eu não preciso fazer busca! não explicitamente..
basta eu acessar a lista desse objeto tipo aluno.getListModalidade().size(); no momento que eu der o size na lista
ele ativa os objetos dela!!
vou testar isso se der certo eu posto
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 16:48:55
|
bigjoe
JavaChild
![[Avatar]](/images/avatar/45d5c43856059a4f97d43d6534be52d0.jpg)
Membro desde: 20/10/2006 14:30:40
Mensagens: 103
Localização: Rio de Janeiro
Offline
|
Eu tinha lido uma dica assim, mas, no meu caso, obtinha um belo nullpointer exception.
This message was edited 1 time. Last update was at 08/09/2009 16:49:09
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2009 17:18:27
|
elugo
JavaChild
![[Avatar]](/images/avatar/dd27f2bc962dc976d5e3115fdc6120ce.jpg)
Membro desde: 08/02/2008 15:30:54
Mensagens: 139
Localização: Campo grande ms
Offline
|
Pessoal! pra quem estiver acompanhando o tópico!!
consegui resolver o problema!! mas mesmo assim não gostei da minha solução que isso fique bem claro!
criei um método editar no meu managed bean da pagina de listagem
e o jsp ficou assim:
notem que chamei um método editar e neste método eu faço o
onde este é a solução do problema...
e depois adiciono meu objeto na sessão e encaminho para outra página...
por enquanto vou deixar assim, mas vou ver se consigo identificar outra forma de solucionar este problema...
se alguem tiver mais alguma idéia ai fiquem avontade!! vlw
This message was edited 1 time. Last update was at 08/09/2009 17:19:47
|
|
|
 |
|
|