在bean工厂中找不到持久性exception转换器。 无法执行exception转换
在使用Hibernate 4.0.0 CR7迁移到Spring Framework 3.1.0 RC1之后,我遇到了exception
2011-12-08 / 11:48:38.425 / EST [Thread-17] ERROR上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建名为’org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0’的bean时出错在ServletContext资源[/WEB-INF/applicationContext-hibernate.xml]中定义:bean的初始化失败; 嵌套exception是java.lang.IllegalStateException:在bean工厂中找不到持久性exception转换器。 无法执行exception转换。 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上的org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:728) org.springframework.web.context.ContextLo中的.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:449) org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)中的order.configureAndRefreshWebApplicationContext(ContextLoader.java:381)org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)at org .apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)org.apache.catalina.core.StandardContext $ 1.call(StandardContext.java:5226)at org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java:5221)java.util.concurrent.FutureTask $ Sync.innerRun(Unknown Source)java.util.concurrent.FutureTask.run(Unknown Source)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) )java.util.concurrent.ThreadPoolExecutor java.lang.Thread.run上的$ Worker.run(未知源)(未知来源)引起:java.lang.IllegalStateException:bean工厂中找不到持久性exception转换器。 无法执行exception转换。 org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators(PersistenceExceptionTranslationInterceptor.java:142)org.springframework.dao.support.PersistenceExceptionTranslationInterceptor。(PersistenceExceptionTranslationInterceptor.java:79)at org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor。(PersistenceExceptionTranslationAdvisor .java:70)org.springframework上的org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory(PersistenceExceptionTranslationPostProcessor.java:103)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1465)。 beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1433)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:52 2)……还有18个
并使用新的spring java配置:
@Bean public HibernateExceptionTranslator hibernateExceptionTranslator(){ return new HibernateExceptionTranslator(); }
正如skravin所提到的,您必须配置一个HibernateExceptionTranslator
。 Hibernate 3的LocalSessionFactoryBean
实现了PersistenceExceptionTranslator
,但Hibernate 4的实现却没有。
- 如何在不将完整文件加载到内存的情况下将大文件插入BLOB(Oracle)?
- 成功发送到服务器的最后一个数据包大于70,400,003毫秒。 比配置的服务器长
- java.lang.NoClassDefFoundError:当我向控制器发送无效值时javax / el / PropertyNotFoundException
- JPA / Hibernate双向多对一导致StackOverflowException
- 没有为jdbc找到合适的驱动程序:mysql:// localhost:3306 / test
- 缺少序列或表:hibernate_sequence
- JPA GenerationType.AUTO没有考虑具有自动增量的列
- 为什么我会获得映射exception?
- java.lang.IllegalStateException:具有@ManyToMany 3实体的同一实体的多个表示forms