在Netbeans中的persistence.xml中有一个名为"Use Java Transaction API"的复选框,这将更改xml
<persistence-unit name="PUNAME-PU" transaction-type="RESOURCE_LOCAL">
:
<persistence-unit name="PUNAME-PU" transaction-type="JTA">
这是针对CMT和BMT的吗?
JPA2规范对该属性的说明如下:
事务类型属性用于指定实体是否实体管理器工厂为持久性提供的管理器单元必须是JTA实体管理器或资源本地实体管理器。这个元素的值是JTA或RESOURCE_LOCAL。一个事务类型的JTA假定将提供一个JTA数据源由jta-data-source元素指定或由容器提供。通常,在Java EE环境中,事务类型为RESOURCE_LOCAL假设将提供一个非jta数据源。在在Java EE环境中,如果未指定此元素,则为默认值JTA。在Java SE环境中,如果未指定此元素,默认为RESOURCE_LOCAL。
下面是关于JTA和资源本地实体管理器的说明:
的JTA entitymanager事务受控制的实体管理器是一个JTA实体管理器。一个JTA实体管理器参与其中在当前的JTA事务中,该事务是从外部开始并提交的传递到实体管理器并传播到底层资源经理。
的本地资源entitymanager实体管理器,其事务是由应用程序通过EntityTransaction API控制的资源本地实体管理器。资源本地实体管理器事务通过资源映射到资源事务持久性提供程序。资源本地实体管理器可以使用服务器或本地资源连接到数据库,并且不知道是否存在活动的JTA事务