小编典典

持久单元为RESOURCE_LOCAL还是JTA?

spring

我有以下查询:

  1. 这两者有什么区别?
  2. 所有数据库都支持这两种方法吗?
  3. JPA TransactionManager和JTA TransactionManager是否不同?

阅读 515

收藏
2020-04-12

共1个答案

小编典典

JPA实现可以选择自己管理事务(RESOURCE_LOCAL),或由应用程序服务器的JTA实现管理事务。

在大多数情况下,RESOURCE_LOCAL是可以的。这将使用基本的JDBC级事务。缺点是该事务对于JPA持久性单元而言是本地的,因此,如果你想要一个跨多个持久性单元(或其他数据库)的事务,那么RESOURCE_LOCAL可能不够好。

JTA还用于跨JMS和JCA之类的系统管理事务,但这对我们大多数人来说是相当奇特的用法。

要使用JTA,你需要在应用程序服务器中对其进行支持,并且还需要JDBC驱动程序的支持。

2020-04-12