Top Posts

Os melhores posts de 2010 LpJava

Continue lendo

Troubleshooting PersistenceExceptionTranslationInterceptor Spring

Posted by camilolopes | Posted in Hibernate, Spring, Throubleshooting | Posted on 28-06-2013

0

 

Olá Pessoal,

O troubleshooting de hoje é para qume está sobrendo com o Hibernate e Spring.  Vamos ver os erros e como podemos resolver. 

Caused by: java.lang.IllegalStateException: No persistence exception translators found in bean factory. Cannot perform exception translation.

                at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators

Esse erro acontece normalmente quando estamos usando a versão do Hibernate 4 no Spring, porém usando as configurações do Hibernate 3. A resolução é simples, veja:

No hibernate 3 usamos o translation assim:

<bean class=”org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor”/>

No Hibernate 4.x deve ser assim:

<bean class=”org.springframework.orm.hibernate4.HibernateExceptionTranslator”/>

O sessionFactory também deve ser alterado, veja:

No Hibernate 3 é assim:

<bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean”>

Mas no Hibernate 4 deve ser assim:

<bean id=”sessionFactory” class=”org.springframework.orm.hibernate4.LocalSessionFactoryBean”>

Pronto! Assim resolvemos a exception de translation com Hibernate. Fiquem espertos com esses detalhes para não gastar tanto tempo.

Abracos, see ya!!

Troubleshooting: Maven HSQLDB Exception Hibernate 4

Posted by camilolopes | Posted in Hibernate, Throubleshooting | Posted on 14-06-2013

0

 

Olá pessoal,

O troubleshooting de hoje é bem simples, pelo menos nesse aqui não levei mais que 20 min para achar a solução. Migrando de Hibernate 3.x para  4.x  tive um problema com os testes que rodam com HSQLDB ao executar mvn test. Vamos ver o problema.

Lets go…

O problema

Ao executar os testes localmente fora do maven pelo Eclipse, funcionava normalmente, claro tinham as libs corretas no meu classpath, mas ao rodar pelo maven, os testes que usavam HSQLDB falhavam e com a seguinte exceção:

org.hibernate.exception.GenericJDBCException: This function is not supported

Caused by: java.sql.SQLException: This function is not supported

 

O motivo

A dependência para o HSQLDB deve ser:

<dependency>

<groupId>org.hsqldb</groupId>

<artifactId>hsqldb</artifactId>

<version>2.2.8</version>

</dependency>

 

Porém é comum declararmos:

<dependency>

<groupId>hsqldb</groupId>

<artifactId>hsqldb</artifactId>

<version>1.8.0.10</version>

</dependency>

 

Não use essa última, pois ela não dá suporte ao Hibernate 4. Não cheguei a testar se no Hibernate 3 há o mesmo problema.

Feita a alteração, rode mvn test e veja que seus testes passarão normalmente.

É isso ai, vivendo e aprendendo. Vou ficando por aqui…

Abraços, see ya!!