Atualizar entidade antes da persistência no BD  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
king_of_gods
JavaTeenager

Membro desde: 28/03/2007 14:28:11
Mensagens: 185
Offline

Amigos,

Estou com o seguinte problema:

- Tenho um cadastro de Pessoas. A inclusão de pessoa funciona sem problemas. O problema acontece a partir daí, qualquer outra "alteração" tenho dificuldade por causa dos campos de Sistema.





Eu levo pra tela, apenas o ID da Pessoa. Eu passo pela minha lógica e no momento da gravação eu estou procurando uma forma de atualizar os atributos de sistema em pessoa.



O erro que ele me gera:



Agradeço a ajuda desde já
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

dá um evict no newT depois do refresh...

o problema é que vc fez um refresh, que colocou um objeto na sessão, e depois tentou fazer um update de um outro objeto com o mesmo id...

--
Caelum
www.caelum.com.br

king_of_gods
JavaTeenager

Membro desde: 28/03/2007 14:28:11
Mensagens: 185
Offline

Funcionou valeu
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

Lucas Cavalcanti wrote:dá um evict no newT depois do refresh...

o problema é que vc fez um refresh, que colocou um objeto na sessão, e depois tentou fazer um update de um outro objeto com o mesmo id...


Lucas, curioso que ele ja tinha tentado com merge. Nesse caso nao deveria funcionar?

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

Paulo Silveira wrote:
Lucas Cavalcanti wrote:dá um evict no newT depois do refresh...

o problema é que vc fez um refresh, que colocou um objeto na sessão, e depois tentou fazer um update de um outro objeto com o mesmo id...


Lucas, curioso que ele ja tinha tentado com merge. Nesse caso nao deveria funcionar?

com dois objetos de mesmo id não...
1o objeto é o do refresh (ou do load)
2o objeto é o transient que foi usado pra fazer o update

--
Caelum
www.caelum.com.br

Carlos_ds_jar
Virtual Machine Man
[Avatar]

Membro desde: 27/01/2007 15:38:24
Mensagens: 540
Localização: Ceará e Paraíba
Offline

Paulo Silveira wrote:
Lucas Cavalcanti wrote:dá um evict no newT depois do refresh...

o problema é que vc fez um refresh, que colocou um objeto na sessão, e depois tentou fazer um update de um outro objeto com o mesmo id...


Lucas, curioso que ele ja tinha tentado com merge. Nesse caso nao deveria funcionar?

Desculpe entrar na discussão, mas eu já uso JPA a algum tempo, se eu estiver falando besteira por favor me corrijam, mas pelo que eu sei o merge funciona para mesclar objetos um transiente e outro persistente desde que com id igual de forma que acho que se enquadraria perfeitamente à situação

This message was edited 1 time. Last update was at 10/08/2010 00:22:30


"O Java é capaz de gerar mais soluções e mais problemas do que a nossa 'vã' filosofia é capaz de prever!"
[Email] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

é bem possivel que eu esteja falando besteira então =S

--
Caelum
www.caelum.com.br

Carlos_ds_jar
Virtual Machine Man
[Avatar]

Membro desde: 27/01/2007 15:38:24
Mensagens: 540
Localização: Ceará e Paraíba
Offline

Exemplo de uso do merge:

"O Java é capaz de gerar mais soluções e mais problemas do que a nossa 'vã' filosofia é capaz de prever!"
[Email] [MSN]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

Carlos, nesse seu caso voce nem precisava ter chamado o merge, ja que o objeto esta managed. Ia funcionar mesmo sem o merge (iria ocorrer o update).

So é necessario chamar o merge quando o objeto esta detached.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team