【发布时间】:2014-12-01 23:04:43
【问题描述】:
我们已经配置了多个事务管理器:
<tx:annotation-driven transaction-manager="transactionManager1" />
<tx:annotation-driven transaction-manager="transactionManager2" />
<tx:annotation-driven transaction-manager="transactionManager3" />
<bean id="transactionManage1"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory1" />
</bean>
<bean id="transactionManager2"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory2" />
</bean>
<bean id="transactionManage3"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory3" />
</bean>
但是,我没有在服务类的@Transactional 注释中看到指定的事务管理器名称。我想知道将使用哪个事务管理器?该代码正在运行,看起来它使用了第一个 - 默认情况下是“transactionManager1”。我错过了什么吗?
【问题讨论】:
-
您还没有回答自己的问题吗?如果需要,您可以将 @Transactional 注释的 value 属性设置为您需要的特定 tx manager 的名称。
-
我知道我们可以指定值,但我的问题是如果我们不指定值它是如何工作的。似乎在使用第一个 tx 管理器,尽管我找不到哪本书/教程这样说。
标签: spring transactions