EntityManager对象管理

根据EntityManager对象的管理方式,可以有以下两种类型:

— 容器托管的(container-managed)EntityManager对象 

容器托管的EntityManager对象最简单,程序员不需要考虑EntityManager连接的释放,以及事务等复杂的问题,所有这些都交给容器去管理。容器托管的EntityManager对象必须在EJB容器中运行,而不能在Web容器和J2SE的环境中运行。如果EntityManager对象都是通过注入 @PersistenceContext注释来获得的,这种获得EntityManager对象的方式就是容器托管的。 

— 应用托管的(application-managed)EntityManager对象 

应用托管的EntityManager对象,程序员需要手动地控制它的释放和连接、手动地控制事务等。但这种获得应用托管的EntityManager对象的方式,不仅可以在EJB容器中应用,也可以使 JPA脱离EJB容器,而与任何的Java环境集成,比如说Web容器、J2SE环境等。所以从某种角度上来说,这种方式是JPA能够独立于EJB环境运行的基础。

原文地址:https://www.cnblogs.com/drizzlewithwind/p/6298729.html