“使用Java事务API”复选框在Netbeans persistence.xml中执行什么操作

时间:2011-11-27 16:15:48

标签: jpa netbeans ejb-3.0 jpa-2.0

在persistence.xml中的Netbeans中有一个名为“Use Java Transaction API”的复选框,它会改变xml:

<persistence-unit name="PUNAME-PU" transaction-type="RESOURCE_LOCAL"> 

要:

<persistence-unit name="PUNAME-PU" transaction-type="JTA">

这是针对CMT还是BMT?

1 个答案:

答案 0 :(得分:2)

以下是JPA2规范对此属性的说明:

  

transaction-type属性用于指定实体是否   管理者为实体经理工厂提供的持久性   单位必须是JTA实体经理或资源本地实体经理。   此元素的值为JTA或RESOURCE_LOCAL。交易类型   JTA假定将提供JTA数据源 - 或者作为   由jta-data-source元素指定或由容器提供。   通常,在Java EE环境中,是一种事务类型   RESOURCE_LOCAL假定将提供非JTA数据源。在   Java EE环境,如果未指定此元素,则为默认值   是JTA。在Java SE环境中,如果未指定此元素,   默认值为RESOURCE_LOCAL。

以下是关于JTA和资源本地实体经理的说法:

  

JTA EntityManagers

     

其交易受到控制的实体经理   通过JTA是JTA实体经理。 JTA实体经理参与   在当前的JTA事务中,它是在外部开始和提交的   到实体管理器并传播到底层资源   管理器。

     

资源本地EntityManagers

     

交易所在的实体经理   应用程序通过EntityTransaction API控制的是一个   资源本地实体经理。资源本地实体管理器   事务通过资源映射到资源事务   持久性提供者。资源本地实体经理可以使用   服务器或本地资源连接到数据库并且不知道   是否存在可能有效或无效的JTA交易。