Salve galera,
É o seguinte, estava usando um tal de CRANK na minha aplicação e nesse framework tem um método que me retorna o SEQUENCE que mandei pesquisar no banco.
Só que eu não quero usar esse cara, tentei colocar o sequence como anotação e não funcionou. Alguem sabe como que resolve o problema abaixo? Tem alguma outra maneira de chamar o sequence do banco se ser por anotação?
Segue uma parte do meu código:
@Table(name = "CONEXAO", schema = "ATMC", uniqueConstraints = {})
@SequenceGenerator(name="SEQ", sequenceName="SQ_CONEXAO", initialValue=1, allocationSize=1)
public class Conexao implements java.io.Serializable{
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ")
@Column(name = "COD_CONEXAO", unique = true, nullable = false, insertable = true, updatable = true, precision = 22, scale = 0)
public Long getCodConexao() {
return this.codConexao;
}
}
Segue o erro ocorrido:
2008-05-14 17:26:01,031 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl main] mark transaction for rollback
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.persistencia.pojo.Conexao
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:219)
at com.persistencia.dao.generico.DAOGenerico.inserirGenerico(DAOGenerico.java:29)
at com.persistencia.dao.ConexaoDAO.inserirConexao(ConexaoDAO.java:37)
at com.servico.ServicoConexao.inserirConexao(ServicoConexao.java:81)
at com.teste.TesteConexao.testeInserir(TesteConexao.java:27)
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 junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:76)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: com.persistencia.pojo.Conexao2008-05-14 17:26:01,046 DEBUG [org.hibernate.transaction.JDBCTransaction main] rollback
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:79)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
... 23 more
2008-05-14 17:26:01,046 DEBUG [org.hibernate.transaction.JDBCTransaction main] re-enabling autocommit
Galera aguarado uma resposta.
Att
vcsmetallica