带有两个事务管理器的Spring事务注释
我正在使用Spring(3.1.4版本)和HibernateTemplate(3.6.7.Final)以及Spring数据JPA(1.3.0.release)。 我在配置文件中定义了两个事务管理器,一个用于Hibernate,另一个用于SpringDataJPA。两个事务管理器都使用不同的数据源带有两个事务管理器的Spring事务注释,spring,hibernate,transactions,spring-data-jpa,Spring,Hibernate,Transactions,Spring Data Jpa,我正在使用Spring(3.1.4版本)和HibernateTemplate(3.6.7.Final)以及Spring数据JPA(1.3.0.release)。 我在配置文件中定义了两个事务管理器,一个用于Hibernate,另一个用于SpringDataJPA。两个事务管理器都使用不同的数据源 <bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<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的事务管理器的方法工作正常,但使用SpringDataJPA的事务管理器的方法不工作
我试着做一些事情,但没有成功
- 在两个事务管理器中使用两个
- 注释@Transactional(value=“jpaTransactionManager”)中的 类级别和方法级别
非常感谢您在上述问题上提供的帮助。尝试显式命名事务管理器。除了默认的“transactionManager”之外,还可以为这两者使用一些东西,并更新所有bean引用,以明确说明它们需要哪个transactionManager。另外,我认为您需要两个“”声明 大概是这样的:
<tx:annotation-driven transaction-manager="hibernateTransactionManager"/>
<tx:annotation-driven transaction-manager="jpaTransactionManager"/>
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="hibernateTransactionManager" />
</bean>
@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
}
<tx:annotation-driven transaction-manager="hibernateTransactionManager"/>
<tx:annotation-driven transaction-manager="jpaTransactionManager"/>
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="hibernateTransactionManager" />
</bean>