pessoal, to postando aqui pra ver se alguem fala alguma coisa que me de uma luz…
eu tenho as seguintes entidades mapeadas.
@Entity
@Table(name="ART_ART")
public class ART implements Serializable {
....
@OneToMany(fetch=FetchType.EAGER, mappedBy="art", cascade=CascadeType.ALL)
private List<ContratoART> contratos;
....
}
@Entity
@Table(name="ART_CONTRATO")
public class ContratoART implements Serializable {
...
@OneToMany( fetch=FetchType.LAZY, mappedBy="contratoART", cascade=CascadeType.ALL)
private List<QuantificacaoART> quantificacoes;
...
}
@Entity
@Table(name="ART_QUANTIFICACAO")
@SequenceGenerator(name="QUANTIFICACAO_SEQUENCE",sequenceName="ART_QUANTIFICACAO_SEQ")
public class QuantificacaoART implements Serializable {
....
@ManyToOne
@JoinColumn(name="FK_CONTRATO_ART")
private ContratoART contratoART;
...
}
e quando eu vou dar um merge em um objeto de ART é lançada a exeção
Caused by: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: creacorp.art.entidade.QuantificacaoART
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:647)
at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:99)
at creacorp.financeiro.dao.FinDividaDaoImpl.getDividaByIdentificadorENatureza2(FinDividaDaoImpl.java:5024)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
... 90 more
o negocio é que a execao é lancada quando vo fazer uma consulta de no banco que nao tem vinculo com essas entidades =/, mas que a consulta faz parte do processo de alteração… e o que
esta mais me deixando confuso é que com alguns objetos de ART não ocorre o erro e em outros ocorre.
Alguma ideia do que pode causar isso?
Estou utilizando EJB3