我使用HibernateTemplate(3.6.7.Final)和Spring Data JPA(1.3.0.RELEASE)的Spring(3.1.4發佈)。 我在配置文件中定義了兩個事務管理器,一個用於Hibernate,另一個用於Spring Data JPA。兩個事務管理器都使用不同的數據源。有兩個事務管理器的Spring事務註釋
<bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager" />
</bean>
我想在我的代碼中的一些方法使用Hibernate的事務管理器和一些方法來使用Spring數據JPA的事務管理。 (Spring Doc link - 10.5.6.2多個事務經理@Transactional)
我在配置文件中定義的註解驅動的事務,在默認情況下是撿Hibernate的交易模板
<tx:annotation-driven />
對於春季運行方法數據JPA的事務管理器我在我的方法定義中提到了事務管理器的名稱,即@Transactional(value =「jpaTransactionManager」),但是在DB中插入記錄後,線程被掛起並且不會調用進一步的代碼。
@Transactional(value = "jpaTransactionManager")
public void transactionMethod()
{
Object obj = createObj();
repository.save(obj); //data is inserted in DB here but after that thread is getting hanged here and below business logic is not called
// Some business logic
}
使用Hibernate的事務管理器的方法工作正常,但使用Spring Data JPA的事務管理器的方法不起作用。
我曾嘗試沒有成功
- 使用兩個既事務管理器下面的東西。
- 在 類級別和方法級別註釋@Transactional(value =「jpaTransactionManager」)。
真的很感謝在上述問題上的任何幫助。