Erro Hibernate  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
ACDiasPJ
Thread.start()
[Avatar]

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.
[WWW] [ICQ]
marcossousaPJ
GUJ Master
[Avatar]
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
[WWW] aim icon [ICQ]
ACDiasPJ
Thread.start()
[Avatar]

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
[WWW] [ICQ]
marcossousaPJ
GUJ Master
[Avatar]
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
[WWW] aim icon [ICQ]
ACDiasPJ
Thread.start()
[Avatar]

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.
[WWW] [ICQ]
marcossousaPJ
GUJ Master
[Avatar]
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
[WWW] aim icon [ICQ]
ACDiasPJ
Thread.start()
[Avatar]

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.
[WWW] [ICQ]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team