- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JPA__核心识总结
JPA核心知识交流JPA概述JPA是什么JPA起源JPA优势JPA供应商JPA技术JPA入门创建JPA步骤JPA执行过程persistence.xml讲解JPA持久化的步骤代码参考:68/svn/dh2011/公共文档/培训/三期培训/core/jpaprojectJPA实体实体定义JPA实体状态JPA实体生命周期JPA实体管理器实体管理器实体管理器(EntityManager)主要负责对JPA实体进行管理。JPA通过不同的实体管理器,可以J2ee环境、J2se环境独立运行。在两种不同的环境中,获取实体管理器是有区别的。因此实体管理器有如下两种。应用程序托管的实体管理器应用托管的EntityManager对象,程序员需要手动地控制它的释放和连接、手动地控制事务等。但这种获得应用托管的EntityManager对象的方式,不仅可以在EJB容器中应用,也可以使JPA脱离EJB容器,而与任何的Java 环境集成,比如说Web容器、J2SE环境等。所以从某种角度上来说,这种方式是JPA能够独立于EJB环境运行的基础。在J2SE环境中获取EntityManagerEntityManagerFactory emf = Persistence.createEntityManagerFactory(JPAPOCPU);EntityManager em = emf.createEntityManager();em.close();注:JPAPOCPU为persistence.xml的persistence-unit name。使用完EntityManager要手动关闭。在EJB容器中获取EntityManager?@PersistenceUnit(unitName= JPAPOCPU )?private EntityManagerFactory emf;?EntityManager em?=?emf.createEntityManager();注:通过注解的方式在EJB sessionbean中得到EntityManagerFactory,然后从实体工厂中得到EntityManager。在web容器中获取EntityManager获取方式跟EJB容器一样。容器托管的实体管理器容器托管的EntityManager对象最简单,程序员不需要考虑 EntityManager连接的释放,以及事务等复杂的问题,所有这些都交给容器去管理。容器托管的EntityManager对象必须在EJB容器中运行,而不能在Web容器和J2SE的环境中运行。容器托管的实体管理器又分为事务范围的EntityManager和可扩展的、绑定有状态会话bean的EntityManager。事务范围的EntityManager@PersistenceContext(unitName = JPAJAVAEEPU) private EntityManager em;注:每当解析由@PersistenceContext注解所创建的引用时,都会返回一个事务范围内的EntityManager。一个事务范围内的实体管理器是无状态的,是线程安全的,完全由服务器进行维护。事务范围内的实体管理器,依赖于JTA的事务,事务范围内的上下文可以进行事务的同步事务的传播事务的关联。可扩展EntityManager扩展的实体管理器使用必须绑定一个有状态的会话bean(声明为@Stateful)。当创建一个有状态会话bean实例时,扩展的实体管理器将创建一个持久的化上下文,在删除bean之前,持久化上下文一直持续。不同于事务范围的实体管理器的持久化上下文(其在事务开始开始,事务结束结束)。扩展的实体管理器的上下文在整个会话期间持续。扩展的实体管理器最大局限在于必须需要一个又状态的会话bean。不能应用在无状态的会话bean或者j2se环境中。@PersistenceContext(unitName=JPAJAVAEEPU,type=PersistenceContextType.EXTENDED)private EntityManager em;注:@PersistenceContext配置type= PersistenceContextType.EXTENDED,表明该EntityManager为超出事务范围的持久化上下文(扩展的持久化上下文)。超出事务范围的持久化上下文,只能绑定在有状态的会话bean上,持久化状态不会根据事务的关闭而销毁。事务管理持久化上下文持久化上下文(Persistence Context)其实就是JPA的一级缓存。是活动与EntityManage与事务之间的一种临时介质。根据不同的事务类型,活动在不同的EntityManager之间。通俗讲持久化上下文主要负责缓存需要进行持久化的实体。在
文档评论(0)