Hibernate和Jpa中都有持久化上下文的概念(Persistence context),持久化上下文其实就是Hibernate和JPA的一级缓存,通过在持久化上下文中存储持久化状态实体的快照,既可以进行脏检测,并且持久化上下文还可以当做持久化实体的缓存。虽然Hibernate作为JPA的超集,Hibernate3.2之后实现了JPA,但是两者对持久化上下文的管理有一定的同,下面比较如下:
1.Hibernate是将Persistence context绑定到session中,当session关闭的时候,persistence context也就关闭了。而对于session来说,Hibernate又可以根据具体情况分别绑定到Thread和JTA事务。如果 Hibernate采用JDBC事务的话,那么采用ThreadLocal来实现Thread绑定,如果采用JTA事务的话,则可以将session绑定到JTA事务上。
2.JPA里持久化上下文分为两种情况:
(1)如果采用application-managed,那么应用程序来管理所需资源(比如数据库等),此时持久化上下文是绑定到当前session的,也就是绑定到EntityManager.
(2)如果采用容器管理的话,那么持久化上下文又分为两种:
1)事务范围的持久化上下文。对于事务的持久化上下文来说,每次当stateless bean与EJB object绑定的时候,容器会注入EntityManger,这样EntityManager和事务都是容器管理的。每次方法调用默认启动事务,方法调用结束后,结束事务。当事务结束的时候,与当前EntityManager关联的持久化上下文也就随之关闭。此种情况下不需要手动关 EntityManager。因为容器会在事务提交或者回滚后,自动关闭EntityManager.
2)扩展的持久化上下文,扩展的持久化上下文是针对与statefull bean来说的,此时持久化上下文的生命周期和statefull bean的生命周期是一致的。每次方法调用结束后,EntityManager关闭了,但是持久化上下文没有关闭,这样以来当事务结束的时候持久化上下文中的对象仍然处于持久化状态,所以在跨方法调用时候,就不需要merge操作了。
分享到:
相关推荐
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; ...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心
JPA是Java EE(现在被称为Jakarta EE)的一部分,它定义了一种标准的API,用于管理和持久化Java对象到数据库。通过JPA,开发人员可以避免直接编写SQL语句,而是使用面向对象的方式处理数据,这样既提高了开发效率,...
本项目为“基于Java的...项目利用Hibernate和JPA技术,为开发者提供了一套完整的持久层解决方案,支持对象关系映射(ORM)和数据持久化操作,适用于各种Java应用场景。项目结构清晰,代码注释详尽,易于理解和集成。
MySQL驱动是Java应用程序连接到MySQL数据库的关键组件,特别是在使用Hibernate和JPA这样的对象关系映射(ORM)框架时。这两个框架极大地简化了数据库操作,但它们依赖于合适的数据库驱动来建立连接。本篇文章将深入...
总的来说,`hibernate-jpa-2.1-api-1.0.0.final.jar`为开发者提供了丰富的JPA 2.1特性的实现,使得在Java项目中使用Hibernate进行数据库操作变得更加便捷和标准化。通过深入理解和熟练运用这个API,我们可以构建出...
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码
1. **persistence.xml**:这是配置Hibernate JPA的主要文件,包含数据源、实体类、持久化单元等信息。 2. **SessionFactory与EntityManagerFactory**:SessionFactory是Hibernate的核心,负责创建Session;...
而Java Persistence API (JPA) 是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。Hibernate是JPA的一个实现,提供了丰富的功能和灵活性,使得在Java应用中使用JPA更加方便。 **1. Hibernate与JPA的...
Hibernate JPA(Java Persistence API)是Java平台上的一个标准,用于管理和持久化应用程序中的对象。它提供了一种在Java应用和关系数据库之间进行数据映射的方法,使得开发者可以使用面向对象的方式来操作数据库,...
hibernate-jpa-2.0-api-1.0.1.Final.jar
Hibernate作为JPA的实现,它提供了丰富的功能和高性能的持久化服务。 **3. JPA的主要特性** 1. **对象-关系映射**:通过注解或XML配置,JPA允许开发者将Java对象映射到数据库表。 2. **查询语言**:JPA提供了一种...
Hibernate是一个具体的ORM框架,而JPA是Java EE规范的一部分,定义了一套API,用于处理持久化对象。Hibernate是JPA的一个实现,提供了更丰富的功能和更高的性能。 1. **配置环境** 在项目中引入Hibernate和JPA的...
Hibernate、iBATIS、TopLink、Castor JDO、Apache OJB等这么多持久层框架,你还在为学习上面那个框架而苦恼吗?你还为研究下一代是那个而头疼吗? 朋友,学习JPA吧!JPA的出现就是解决您上面的苦恼的。
Hibernate JPA 2.0 API是Java持久化领域的重要组成部分,它为开发人员提供了一种规范化的接口,用于与关系数据库进行交互。这个源码包"hibernate-jpa-2.0-api-1.0.1.Final-sources"包含了完整的源代码,可以帮助我们...
hibernate-jpa-2.1-api-1.0.0.Final.jar官方下载,请放心使用
《精通Hibernate:Java对象持久化详解》是一本深入解析Hibernate技术的专著,它主要针对Java开发者,旨在帮助他们理解和掌握Java对象持久化的精髓。Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了...