`

Hibernate的三种状态.

阅读更多

包括瞬时态(Transient),持久态(Persistent)和脱管态(Detached)

瞬时态,
 是对象创建时,瞬时在内存孤立存在,他是携带信息的载体,不和数据库的数据有任何的关系,在hibernate中,可以通过 session的save()或是saveOrUpdate()的方法将瞬时对象与数据库相关联,,并将数据对应的插入数据库中,此时的瞬时态对象变成持 久化对象

持久态,
 是该对象在数据库中已有对应的记录,并拥有一个持久化标示,如果使用hibernate的delete()方法,对应的持久对象就变成瞬时对象。因数据库中的对应数据已被删除,该对象不再与数据库的记录关联。 
 当一个session执行clear(),evict()之后,此时的持久化对象变成脱管对象,此时该对象虽然具有数据库的标示,但他已不再hibernate持久层的管理下了

 持久对象具有如下特点:
  1,和session实例关联(保存在session中是一级缓存.)
  2,在数据库中有与之关联的记录

脱管态;
 当与某持久态关联的session别关闭后,该持久态的对象转变为脱管态,当脱管态被重新关联到session上时,并再次转变成持久对象。
 脱管态对象拥有数据库的识别值,可通过update(),saveOrUpdate()等方法,转变成持久对象

 脱管对象有如下特点:
  1,本质上与瞬时对象是相同的,在没有任何变量引用他时,jvm会在实时的时候将它回收
  2,比瞬时对象多了一个数据库记录标识值。

lock与update的区别:
 update是把一个已经更改过的脱管状态的对象变成一个持久状态
 lock是把一个没有更改过的脱管状态的对象变成一个持久状态

 对应更改一个记录的内容,两个的操作不同:
  
update的操作步骤说明
 属性改动后的脱管状态的对象的修改->调用update

分享到:
评论

相关推荐

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    Hibernate_v5.2.13.zip

    2. **持久化类(Persistent Class)**:这些类是具有持久状态的实体类,它们的实例可以被保存到数据库并从数据库加载。 3. **ID(Identifier)**:每个实体都有一个唯一的ID,用于在数据库中唯一标识它。通常使用`@...

    hibernate对象三种状态

    在Java的持久化框架Hibernate中,对象存在三种不同的状态,分别是持久态(Persistent)、自由态(Transient)和游离态(Detached)。这三种状态分别对应了对象与数据库的关联程度,理解它们对于高效地使用Hibernate...

    hibernate三态详解.doc

    对象在 Hibernate 中可以处于三种状态:临时状态(Transient)、持久化状态(Persistent)和游离状态(Detached)。理解这些状态对于有效使用 Hibernate 进行数据操作至关重要。 1. 临时状态(Transient): 当...

    HibernateAPI中文版.chm

    9.1. 三种策略 9.1.1. 每个类分层结构一张表(Table per class hierarchy) 9.1.2. 每个子类一张表(Table per subclass) 9.1.3. 每个子类一张表(Table per subclass),使用辨别标志(Discriminator) 9.1.4. 混合...

    Hibernate三种状态区分

    在 Hibernate 中,对象有三种不同的状态,这些状态决定了对象与数据库之间的关联程度以及如何进行数据操作。理解这些状态对于有效地使用 Hibernate 至关重要。 1. **瞬时态(Transient)**: - 瞬时态的对象是刚刚...

    hibernate3.zip 包含hibernate3.jar

    9. **懒加载和立即加载**:懒加载是Hibernate的一种优化策略,只有在真正需要时才会加载关联的对象,而立即加载则会在获取主对象时一起加载关联对象。 10. **集合映射**:Hibernate支持多种集合类型(如List、Set、...

    hibernate的三种状态及其相互转换

    这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择

    Hibernate中对象的三种状态

    在Java的持久化框架Hibernate中,对象的状态管理是其核心特性之一...总之,理解Hibernate中对象的三种状态以及它们之间的转换对于开发人员来说至关重要。熟练掌握这些概念有助于编写出更加高效、可靠的Java持久化代码。

    hibernate-3.6.4.Final.zip

    5. 第二级缓存:Hibernate支持查询结果缓存和对象状态缓存,提高系统性能。 四、使用步骤 1. 配置Hibernate:设置hibernate.cfg.xml配置文件,包括数据库连接信息、缓存配置等。 2. 创建实体类和映射文件:实体类...

    hibernate中文版PDF.7z

    本教程由三部分组成,全面讲解了Hibernate的核心概念、配置、使用方法以及高级特性。 1. **Hibernate简介**:Hibernate是一种开放源代码的Java库,它为Java开发者提供了方便的API来管理和持久化对象。通过ORM,...

    Hibernate三种状态

    Hibernate对象有三种状态:瞬时状态(Transient)、持久状态(Persistent)和脱管状态(Detached)。理解这些状态对于优化数据操作和避免潜在的问题至关重要。 首先,瞬时状态(Transient)是指通过new关键字创建的...

    hibernate中文参考文档.pdf

    Hibernate提供了一套完整的持久化管理机制,包括对象状态跟踪、缓存管理和事务处理等功能。这些机制可以帮助开发者有效地管理对象的生命周期,提高系统的性能和稳定性。 #### 4. 查询语言 除了支持标准的SQL查询外...

    hibernate源码release-4.1.4.Final版

    3. Query与Criteria:提供了两种查询方式,HQL(Hibernate Query Language)是一种面向对象的查询语言,类似于SQL;Criteria API则提供了更动态、更面向对象的查询方式。 三、实体管理 Hibernate通过@Entity注解...

    hibernate 2 安装手记.rar

    Hibernate 2是Hibernate系列的早期版本,它提供了一种模型化关系数据为面向对象的方式,使得开发者可以使用Java对象来处理数据库操作,而无需过多关注SQL语法。这降低了数据库操作的复杂性,提高了开发效率。 2. *...

    Hibernate 三种状态

    ### Hibernate 三种状态详解 #### 一、引言 Hibernate 是一款开源的对象关系映射 (ORM) 框架,它极大地简化了 Java 应用程序与数据库之间的交互过程。在 Hibernate 中,对象的状态管理是其核心特性之一,主要包括...

    Hibernate Session 4种对象状态.docx

    Hibernate将对象的状态划分为四种:临时状态、持久化状态、游离状态和删除状态。这些状态反映了对象与数据库记录之间的关系,有助于理解Hibernate如何管理和操作数据。 1. **临时状态(Transient State)**: 当一...

    Hibernate's JPA.rar

    JPA是一种标准接口,定义了一套规范,允许开发者在不直接操作SQL的情况下管理Java对象的生命周期和状态。通过JPA,开发者可以使用面向对象的方式处理数据库操作,简化了数据库应用的开发。JPA的核心概念包括实体...

    Hibernate3.6中文文档.rar

    Hibernate定义了四种实体状态:瞬时态、持久态、托管态和游离态。理解这些状态有助于正确处理对象的生命周期,避免出现并发问题。 ### 九、性能优化 为了提高性能,Hibernate提供了多种策略,如延迟加载、批处理、...

Global site tag (gtag.js) - Google Analytics