我是JPA的新手,在JPA的许多资源中我遇到这两个术语(容器持久性单元和非容器持久性单元)但我无法理解差异。任何人都可以帮助我理解这些短语吗?什么是容器?是这样的 Tomcat的?
答案 0 :(得分:1)
'集装箱'在此上下文中表示EJB容器,通常由符合Java EE的应用程序服务器提供。
由于Tomcat不符合Java EE,因此它不是一个容器'在JPA规范的意义上。但是,Tom EE提供了与其他Java EE服务器一样的容器。 Oracle提供complete list of compliant servers。
主要区别在于,在容器中,您可以使用JTA资源,如事务和事务范围EntityManager
。如果没有容器,您必须使用ÈntityTransaction
和EXTENDED
EntityManager
。
答案 1 :(得分:0)
在属性中,事务类型可以采用2个值“RESOURCE_LOCAL”或“JTA”中的一个。
JTA - 适用于应用程序服务器环境。由应用程序服务器管理的事务。
RESOURCE_LOCAL - 您使用代码管理了事务。您可以在开发/测试阶段使用它独立工作。