を投げた私は、私は次のようにサービス層で別のメソッドを呼び出している一つの方法を持っている問題に直面しています:@Transaction問題:TransactionSynchronization.beforeCompletionは例外
@Transactional
@Override
public void method1(List<String> vals)
{
for (String value : vals){
method2(value);
}
}
@Transactional(propagation= Propagation.REQUIRED)
public void method2(String value)
{
//Hibernate Call 1
//Hibernate Call 2
}
私は方法2でトランザクション注釈を入れていますコントローラからも呼び出すことができます。
そして、私のトランザクションマネージャは、次のようになります。
12/22/11:それは次のエラーを与えている1コントローラは、メソッドを呼び出しているとき、私はこのコードを実行している場合は
<tx:annotation-driven transaction-manager="transactionManager"/> <aop:aspectj-autoproxy/> <!-- Transaction manager for hibernate --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> <property name="dataSource" ref="dataSource"></property> </bean>
18:4455410:エラー[http-8181-1] (.support.TransactionSynchronizationUtils:87) - TransactionSynchronization.beforeCompletion例外が投げられました java.lang.IllegalStateException:キーの値がありません [org.hib [email protected]]スレッドにバインド [HTTP-8181から1 org.springframework.orm.hibernate3.SpringSessionSynchronizationで】org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource(TransactionSynchronizationManager.java:190)で org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletionでorg.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCompletion(TransactionSynchronizationUtils.java:84) (AbstractPlatformTransactionManager.java:895)で.beforeCompletion(SpringSessionSynchronization.java:187) org.spriのorg.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:693) にあります。 org.springframework.transaction.interceptor.TransactionInterceptor.invokeでorg.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321) でngframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678) ( $ Proxy31でorg.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) でorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) でTransactionInterceptor.java:116) .method1(不明な情報源)