在阅读Spring事务文档时,我看到它同时支持全局事务和本地事务。
如果我使用以下配置-这是否意味着它是一个本地事务?
<tx:annotation-driven transaction-manager="transManager" />
<bean id="transManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf" />
</bean>我试着在Google和Stackoverflow中搜索,但是没有得到任何简单的解释同样的资源。
发布于 2014-03-06 11:46:32
实际上,有很多资源可以回答您的前两个问题,例如,春季文献解释了什么是本地事务和全局事务,并在9.2动机章中描述了它们之间的差异。用几句话:
全局事务是应用服务器管理的事务,允许使用不同的事务资源(这可能是两个不同的数据库、数据库和消息队列等)。
本地事务是特定于资源的事务(例如,Oracle事务),应用服务器与它们无关。(同一章很好地解释了每一种方法的优缺点,比我能解释的要好得多,所以我建议你仔细看一看)
回答你后面的问题。文档说JpaTransactionManager能够处理全局事务,所以通过查看显示的代码,很难判断它是本地事务还是全局事务。同样的文档指出,应该使用本地单资源事务DataSourceTransactionManager来代替。
https://stackoverflow.com/questions/22221741
复制相似问题