Erro ao alterar o identificador de uma classe no hibernate

4 respostas
R

Pessoal estou com um problema que é assim:

eu preciso pegar uma entidade gerenciada pelo JPA e alterar suas propriedades para os valores de outra entidade dessa forma:
PropertyUtils.copyProperties(instanceModal, selectedItem);

ate ai tudo bem o problema é que na hora de levar para o banco da o seguinte erro:
identifier of an instance of ce.gov.s2gpr.rh.item.business.model.entity.Item was altered from 4 to 1
11:28:23,564 ERROR [STDERR] at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)

eu preciso mudar somente a propriedade para não perder o objeto de referencia, alguem já teve um problema desse tipo? tem alguma solução?

4 Respostas

Felagund

esse problema ocorre por que o objeto está associado ao EntityManager,

vc teria que fazer o objeto ser desassociado, passando ele como paramentro para outro objeto. Pelo menos quando o caso é EJB funciona.

R

pois é tb achei q seria esse o problema pq quando coloquei outro objeto ao inves de modificar o q ja existia deu certo
mais sera se nao tem uma forma de fazer isso? eu tentei já essa forma de desatachar entes mais deu o mesmo erro
quando chamei o merge.

mynameisflaw

tenta implementando Cloneable e sobrescrevendo o metodo clone()
recupere uma nova instancia a partir desse metodo.

abraços

R

o clono no meu caso nao vai funcionar pq eu não quero criar uma copia eu preciso alterar
o proprio objeto.

Criado 12 de março de 2010
Ultima resposta 12 de mar. de 2010
Respostas 4
Participantes 3