web-dev-qa-db-ja.com

Beanファクトリーに永続化例外トランスレーターが見つかりませんでした。例外変換を実行できません

Hibernate 4.0.0 CR7を備えたSpring Framework 3.1.0 RC1に移行した後、次の例外が発生します

2011-12-08/11:48:38.425/EST [スレッド17]エラーコンテキストの初期化に失敗しましたorg.springframework.beans.factory.BeanCreationException: 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0'という名前のBeanの作成中にエラーが発生しましたServletContextリソースで定義[/WEB-INF/applicationContext-hibernate.xml]:Beanの初期化に失敗しました。ネストされた例外はJava.lang.IllegalStateExceptionです:Beanファクトリーに永続例外トランスレーターが見つかりません。例外変換を実行できません。 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.Java:530)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.Java:459)at org.springframework.beans .support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.Java:294)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.Java:225)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean( AbstractBeanFactory.Java:291)org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.Java:197)at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.Java:728)at org.springframework org.springframework.web.context.ContextLoの.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:449) ader.configureAndRefreshWebApplicationContext(ContextLoader.Java:381)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.Java:283)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.Java:111)at org .Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4723)at org.Apache.catalina.core.StandardContext $ 1.call(StandardContext.Java:5226)at org.Apache.catalina.core.StandardContext $ 1.call (StandardContext.Java:5221)at Java.util.concurrent.FutureTask $ Sync.innerRun(Unknown Source)at Java.util.concurrent.FutureTask.run(Unknown Source)at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source )at Java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)at Java.lang.Thread.run(Unknown Source)原因:Java.lang.IllegalStateException:永続化例外トランスレーターがBeanファクトリーに見つかりません。例外変換を実行できません。 org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.Java.142のorg.springframework.dao.support.PersistenceExceptionTranslationInterceptor。(PersistenceExceptionTranslationInterceptor.Java:79)のorg.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators(PersistenceExceptionTranslationInterceptor.Java:142)で.Java:70)org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory(PersistenceExceptionTranslationPostProcessor.Java:103)at 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

21
Mat B.

そして新しい春Java設定:

    @Bean 
    public HibernateExceptionTranslator hibernateExceptionTranslator(){ 
      return new HibernateExceptionTranslator(); 
    }
25
F. Geraerts

Skravinが述べたように、 HibernateExceptionTranslator を構成する必要があります。 Hibernate 3のLocalSessionFactoryBeanPersistenceExceptionTranslatorを実装しますが、Hibernate 4の実装は実装しません。

23
JB Nizet