Boa Tarde,
Estou migrando uma aplicação que roda no Tomcat para o Jboss 7.
Me deparei um problema que não sei o que pode estar afetando esse comportamento.
Entidades que usam @TableGenerator não estão sendo persistidas, pois parece que o hibernate está usando uma sequence ao invés da tabela de pks, conforme o log do erro.
Caused by: org.hibernate.HibernateException: Could not apply work
at org.hibernate.engine.transaction.internal.jta.JtaIsolationDelegate.doTheWorkInNewTransaction(JtaIsolationDelegate.java:140) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.engine.transaction.internal.jta.JtaIsolationDelegate.delegateWork(JtaIsolationDelegate.java:93) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.id.MultipleHiLoPerTableGenerator.generate(MultipleHiLoPerTableGenerator.java:218) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:120) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:78) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:208) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:151) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:78) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:725) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:701) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:705) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:853) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
... 48 more
Caused by: org.hibernate.HibernateException: Unable to perform isolated work
at org.hibernate.engine.transaction.internal.jta.JtaIsolationDelegate.doTheWork(JtaIsolationDelegate.java:168) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.engine.transaction.internal.jta.JtaIsolationDelegate.doTheWorkInNewTransaction(JtaIsolationDelegate.java:129) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
... 59 more
Caused by: org.postgresql.util.PSQLException: ERRO: coluna "sequence_next_hi_value" não existe
Posição: 8
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
Agora o controle de transação fica por conta do Jboss (JTA), mas não sei isso pode ser a causa do problema…
Esse é o persistence.xml configurado:
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="default">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/nomeDoDataSource</jta-data-source>
<class>....</class>
<properties>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.format_sql" value="false" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
Alguém já passou por algo parecido ou utiliza o postgresql com Jboss 7 ?
