No se encontraron traductores de excepción de persistencia en la fábrica de frijoles. No se puede realizar una traducción de excepción

Obtengo una excepción después de migrar a Spring Framework 3.1.0 RC1 con Hibernate 4.0.0 CR7

2011-12-08 / 11: 48: 38.425 / EST [Thread-17] ERROR Falló la inicialización del contexto org.springframework.beans.factory.BeanCreationException: Error al crear bean con el nombre ‘org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor # 0’ definido en el recurso ServletContext [/WEB-INF/applicationContext-hibernate.xml]: la inicialización del bean ha fallado; la excepción anidada es java.lang.IllegalStateException: no se encontraron traductores de excepciones de persistencia en la fábrica de frijoles. No se puede realizar la traducción de excepción. en org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:530) en org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:459) en org.springframework.beans.factory .support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:294) en org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:225) en org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean ( AbstractBeanFactory.java:291) en org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) en org.p.as.as.P.P. .context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:449) en org.springframework.web.context.ContextLo ader.configureAndRefreshWebApplicationContext (ContextLoader.java:381) en org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:283) en org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:111) en org .apache.catalina.core.StandardContext.listenerStart (StandardContext.java:4723) en org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java:5226) en org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java:5221) en java.util.concurrent.FutureTask $ Sync.innerRun (Fuente desconocida) en java.util.concurrent.FutureTask.run (Fuente desconocida) en java.util.concurrent.ThreadPoolExecutor. ) en java.util.concurrent.ThreadPoolExecutor $ Worker.run (Fuente desconocida) en java.lang.Thread.run (Fuente desconocida) Causado por: java.lang.IllegalStateException: No se encuentran traductores de excepciones de persistencia en la fábrica de frijoles. No se puede realizar la traducción de excepción. en org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators (PersistenceExceptionTranslationInterceptor.java:142) en org.springframework.dao.support.PersistenceExceptionTranslationInterceptor. (PersistenceExceptionTranslationInterceptor.java:79) en org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor. (PersistenceExceptionTranslationAdvisor) .java: 70) en org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory (PersistenceExceptionTranslationPostProcessor.java:103) en org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods (AbstractAutowireCapableBeanFactory.java:1465) en org.springframework. beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1433) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:52 2) … 18 más

Y con la nueva configuración de java de spring:

@Bean public HibernateExceptionTranslator hibernateExceptionTranslator(){ return new HibernateExceptionTranslator(); } 

Como lo menciona skravin, debe configurar un HibernateExceptionTranslator . El LocalSessionFactoryBean para Hibernate 3 implementa PersistenceExceptionTranslator , pero el de Hibernate 4 no lo hace.