1 / 9
文档名称:

JPA EntityManager详解.docx

格式:docx   大小:23KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

JPA EntityManager详解.docx

上传人:mh900965 2017/12/22 文件大小:23 KB

下载得到文件列表

JPA EntityManager详解.docx

相关文档

文档介绍

文档介绍:JPA EntityManager详解(一)
持久化上下文(Persistence Contexts)的相关知识,内容包括如何从Java EE容器中创建EntityManager对象、如何从Java SE中创建EntityManager对象、持久化上下文与事务(Transction)的关系,以及实体管理器工厂(Entity Manager Factory)的相关内容。 
通过本章的学习,读者将深入掌握JPA中有关持久化上下文、事务处理的相关知识,从而能够更加深入地应用JPA。 
获得EntityManager对象 
那么如何获得EntityManager对象呢?这又是JPA中另外一个很重要的问题。 
  Java EE环境与J2SE环境 
在详细讲述EntityManager对象之前,读者首先要分清楚两个概念,即Java EE环境与J2SE环境。因为在本章后面的学习中要经常提到这两个概念,所以读者一定要先理解它们,为以后的学习打好基础。 
— Java EE环境,包括EJB容器和Web容器。 
(1)Web容器:只运行Web应用的容器,例如Tomcat就是开源的Web容器,它可以运行JSP、Servlet等。 
(2)EJB容器:运行在EJB组件的容器,提供EJB组件的状态管理、事务管理、线程管理、远程数据资源访问、连接管理和安全性管理等系统级服务。例如JBoss为EJB容器和Web容器(Web容器是集成了Tomcat)结合。 
部署在EJB容器中的JAR包都可以认为是运行在EJB容器中。但JBoss中的Web应用,比如war包中的类就不是运行在EJB容器中,而是运行在Web容器中。 
— J2SE环境 
最普通Java运行环境,例如一个HelloWorld的Java程序就是运行在J2SE的环境中,通常使用main入口方法作为程序启动的触发。 
如图11-1所示,它说明了Java EE与J2SE环境的关系。 
  两种类型的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环境运行的基础。 
理想状态下