JPA容器持久性单元Vs JPA非容器持久性单元

时间:2014-03-31 12:29:54

标签: java jpa

我是JPA的新手,在JPA的许多资源中我遇到这两个术语(容器持久性单元和非容器持久性单元)但我无法理解差异。任何人都可以帮助我理解这些短语吗?什么是容器?是这样的 Tomcat的?

2 个答案:

答案 0 :(得分:1)

'集装箱'在此上下文中表示EJB容器,通常由符合Java EE的应用程序服务器提供。

由于Tomcat不符合Java EE,因此它不是一个容器'在JPA规范的意义上。但是,Tom EE提供了与其他Java EE服务器一样的容器。 Oracle提供complete list of compliant servers

主要区别在于,在容器中,您可以使用JTA资源,如事务和事务范围EntityManager。如果没有容器,您必须使用ÈntityTransactionEXTENDED EntityManager

答案 1 :(得分:0)

在属性中,事务类型可以采用2个值“RESOURCE_LOCAL”或“JTA”中的一个。

JTA - 适用于应用程序服务器环境。由应用程序服务器管理的事务。

RESOURCE_LOCAL - 您使用代码管理了事务。您可以在开发/测试阶段使用它独立工作。