Я получаю следующее исключение после перехода на Spring Framework 3.1.0 RC1 с Hibernate 4.0.0 CR7
2011-12-08 / 11: 48: 38.425 / EST [Thread-17] ОШИБКА При инициализации контекста не удалось org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor # 0 ', определенного в ресурсе ServletContext [/WEB-INF/applicationContext-hibernate.xml]: Вложенное исключение - java.lang.IllegalStateException: в фабрике бинов не найдены трансляторы исключительных ситуаций постоянства. Невозможно выполнить исключение перевода. в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:530) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:459) в org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:294) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:225) в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:291) в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) в org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors (AbstractApplicationContext.java:728) в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:449) в org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext (ContextLoader.java:381) в org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:283) в org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:111) в org.apache.catalina.core.StandardContext.listenerStart (StandardContext.java:4723) в org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java:5226) в org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java:5221) at java.util.concurrent.FutureTask $ Sync.innerRun (неизвестный источник) at java.util.concurrent.FutureTask.run (неизвестный источник) в java.util.concurrent.ThreadPoolExecutor.runWorker (Неизвестный источник) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) at java.lang.Thread.run (неизвестный источник) Вызвано: java.lang.IllegalStateException: В фабрике бинов не найдены трансляторы исключительных ситуаций персистентности. Невозможно выполнить исключение перевода. в org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators (PersistenceExceptionTranslationInterceptor.java:142) в org.springframework.dao.support.PersistenceExceptionTranslationInterceptor. (PersistenceExceptionTranslationInterceptor.java:79) в org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor. (PersistenceExceptionTranslationAdvisor.java:70) в org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory (PersistenceExceptionTranslationPostProcessor.java:103) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods (AbstractAutowireCapableBeanFactory.java:1465) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1433) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:522) ... еще 18
И с новой весенней конфигурацией Java:
@Bean public HibernateExceptionTranslator hibernateExceptionTranslator(){ return new HibernateExceptionTranslator(); }
Как упомянуто skravin, вы должны настроить HibernateExceptionTranslator. LocalSessionFactoryBean для Hibernate 3 реализует PersistenceExceptionTranslator, а для Hibernate 4 - нет.
HibernateExceptionTranslator
LocalSessionFactoryBean
PersistenceExceptionTranslator