EclipseLink (JPA) Spring - No persistence exception translators exception

I recently stumbled upon a Spring Exception while working with Spring Data JPA and attempting to deploy a WAR file on glassfish. I have a JTA datasource defined in my glassfish which is used by Spring (through JNDI) to instantiate my entity manager. The JPA configuration was pretty straight forward but every time I tried to deploy the app on Glassfish I stumbled upon the error :
1
2
3
4
5
6
7
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name
'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0':
Initialization of bean failed;
nested exception is java.lang.IllegalStateException:
No persistence exception translators found in bean factory.
Cannot perform exception translation.
Apparently when using Hibernate there is an easy fix for this : Declaring a Hibernate Exception Translator in the spring beans config file :
1
2
<bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator">
</bean>
When using EclipseLink though this doesn't work... So I looked for implementations of the spring interface :
1
org.springframework.dao.support.PersistenceExceptionTranslator
And found out that there is not an EclipseLinkExceptionTranslator (as for Hibernate) but there is a EclipseLinkJpaDialect
1
org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect
That implements the interface so I created a bean in the spring configuration file and I was able to deploy the app on the glassfish.
1
2
<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect">
</bean>

No comments:

Post a Comment

OSX show used ports or listening applications with their PID

On OSX you can display applications listening on a given port using the lsof the commands described below will show listening application...