Como mudar o tipo de objeto com Joined subclasses

0 respostas
thiagonego

Senhores tenho em minha base a seguinte estrutura:

@Entity
public class Magistrado extends Servidor

@Entity
public class Servidor extends Pessoa

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Pessoa

Utilizo de Hibernate e JPA.

Portanto eu JÀ tenho um objeto do tipo Servidor e estou querendo torna-lo agora Magistrado.
Explicando melhor, recuperei do banco um objeto Servidor e agora quero transforma em Magistrado.

Estou tentando persistir assim:

getMagistrado().setId(servidor.getId());
getMagistrado().setExcluido(false);
getMagistrado().setSubstitutosMagistrado(null);
					
facade.adicionarMagistrado(getMagistrado());

Só que infelizmente não consigo pois da a exeção abaixo.
Sei previamente que o erro vem pois não posso setar um Id em um objeto novo pois utilizo de uma sequience…

... 101 more
Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: br.jus.tjpb.ejus2.entidades.Magistrado

at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:102)

at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:61)

at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:645)

at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:619)

at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:623)

at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:220)

 103 more
Criado 27 de outubro de 2010
Respostas 0
Participantes 1