在阅读Spring事务文档时,我发现它支持全局事务和本地事务。
如果我使用以下配置 - 这是否意味着它是本地交易?
<tx:annotation-driven transaction-manager="transManager" />
<bean id="transManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf" />
</bean>
我尝试在Google和Stackoverflow中搜索,但没有得到任何资源,只是用简单的术语解释相同的内容。
答案 0 :(得分:16)
实际上有很多资源可以回答你的前两个问题,例如Spring Documentation解释了本地和全球交易是什么,并描述了他们在 9.2 Motivation 章节中的差异。简而言之:
全局事务是一个应用程序服务器管理的事务,允许使用不同的事务资源(这可能是两个不同的数据库,数据库和消息队列等)
本地事务是特定于资源的事务(例如Oracle Transactions),而应用程序服务器与它们无关。 (同一章解释了他们每个人的优点和缺点,然后我可以解释得更好,所以我建议你仔细看看)
回答你以后的问题。 documentation表示JpaTransactionManager
能够处理全局事务,因此通过查看显示的代码片段,很难说它是本地事务还是全局事务。相同的文档说明应该使用本地单一资源事务DataSourceTransactionManager
。