| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2007 16:35:02
|
ACDiasPJ
Thread.start()
![[Avatar]](/images/avatar/0)
Membro desde: 01/04/2006 00:00:00
Mensagens: 25
Offline
|
Olá. Estou desenvolvendo um projeto com Hibernate e venho enfrentando alguns problemas.
Tenho uma entidade que possui vários atributos do tipo List. Então para facilitar minha vida na hora de inserir valores e não precisar fazer um método para adicionar objetos em cada atributo eu fiz um método com Reflection que consegue pegar a Lista corrente e adicionar um novo item nela. No entanto quando vou persistir com saveOrUpdate, a aplicação gera uma exception.
Eu omiti as linhas que procuram pelos métodos a serem invocados. O objeto curriculo foi populado através de uma consulta, então eu chamo o getLista e jogo em minha lista, então eu procuro por um objeto que contenha o mesmo id que o que eu quero inserir ou alterar. Se encontrar ele troca os objetos, senão ele adiciona um novo na lista. Depois disso chamo o método setLista e coloco a lista atualizada e mando persistir.
Estou tendo o seguinte exception quando tento alterar esta lista:
Alguém pode me ajudar a consertar isso ou mesmo me indicar uma maneira melhor de fazer isto?
Obrigado.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/08/2007 00:36:21
|
marcossousaPJ
GUJ Master
Membro desde: 14/01/2004 00:00:00
Mensagens: 1835
Offline
|
Olá,
Use o BeanUtils, nele você encontrará esta questão você está querendo... mas este problema aí é o seguinte: você obteve um objeto e criou outro e está tentando fazer um save/update. Inclua-o na sessão hibernate primeiro... como? session.merger(obj);
Caso os problemas persistirem, cole por favor, o código completo, pois está faltando muitas partes.... aparentemente... e não está dando para ligar.
:okok:
|
http://www.marcossousa.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/08/2007 07:39:34
|
ACDiasPJ
Thread.start()
![[Avatar]](/images/avatar/0)
Membro desde: 01/04/2006 00:00:00
Mensagens: 25
Offline
|
Fiz diferente, eu estou alterando o objeto direto na lista em vez de substituí-lo.
No lugar de
Eu fiz isso.
Talvez esta não seja a melhor maneira, mas precisava de uma solução com urgência e usei isto mesmo.
hehe
Vou tentar usar este merger aqui
vlw
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/08/2007 12:13:41
|
marcossousaPJ
GUJ Master
Membro desde: 14/01/2004 00:00:00
Mensagens: 1835
Offline
|
Opa,
Hummmm não sei se esta é a melhor opção, não sei ao certo o que está fazendo, mas pelo que deu para entender, porque você não usa o cascade do Hibernate?
:okok:
|
http://www.marcossousa.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/08/2007 12:19:37
|
ACDiasPJ
Thread.start()
![[Avatar]](/images/avatar/0)
Membro desde: 01/04/2006 00:00:00
Mensagens: 25
Offline
|
Esse cascade a que você se refere é o que coloca no mapeamento?
Se for eu coloquei cacade all.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/08/2007 10:00:22
|
marcossousaPJ
GUJ Master
Membro desde: 14/01/2004 00:00:00
Mensagens: 1835
Offline
|
Então você não precisa deste script aí não, basta você usar os objetos dependentes através da entidade pai e dar um update nela. Que os objetos dependentes serão atualizados.
:joia:
|
http://www.marcossousa.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/08/2007 16:00:29
|
ACDiasPJ
Thread.start()
![[Avatar]](/images/avatar/0)
Membro desde: 01/04/2006 00:00:00
Mensagens: 25
Offline
|
Então você não precisa deste script aí não, basta você usar os objetos dependentes através da entidade pai e dar um update nela. Que os objetos dependentes serão atualizados.
Como assim? Não é o que estou fazendo? Peguei o objeto dependente do objeto pai atualizo ele e dou um saveOrUpdate. Mas como é uma lista, se eu adicionar um novo item ele não aceita dizendo que estou tentando atribuir um objeto diferente à sessão com o mesmo identificador.
|
|
|
 |
|
|