`

Hibernate三种状态

阅读更多
Hibernate的对象有3种状态,
分别为:

瞬时态(Transient)
持久态(Persistent)
脱管态(Detached)


处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。

瞬时态

        由new命令开辟内存空间的java对象,

        eg. Person person = new Person("xxx", "xx");

        如果没有变量对该对象进行引用,它将被java虚拟机回收。

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


持久态

        处于持久态的对象在数据库中具有对应的记录,并拥有一个持久化标识。如果是用hibernate的delete()方法,对应的持久对象就变成瞬时对象,因数据库中的对应数据已被删除,该对象不再与数据库的记录关联。

       当一个session执行close()或clear()、evict()之后,持久对象变成脱管对象,此时持久对象会变成脱管对象,此时该对象虽然具有数据库识别值,但它已不在HIbernate持久层的管理之下。
持久对象具有如下特点:

        1. 和session实例关联;

       2. 在数据库中有与之关联的记录。



脱管态


        当与某持久对象关联的session被关闭后,该持久对象转变为脱管对象。当脱管对象被重新关联到session上时,并再次转变成持久对象

       脱管对象拥有数据库的识别值,可通过update()、saveOrUpdate()等方法,转变成持久对象。

       脱管对象具有如下特点:

       1. 本质上与瞬时对象相同,在没有任何变量引用它时,JVM会在适当的时候将它回收;

        2.   比瞬时对象多了一个数据库记录标识值。
分享到:
评论

相关推荐

    Hibernate 三种状态

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

    Hibernate三种状态区分

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

    Hibernate中对象的三种状态

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

    hibernate对象三种状态

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

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

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

    hibernate 三种状态的转换

    在Hibernate ORM框架中,实体对象可以处于三种不同的状态:瞬时状态(Transient)、持久状态(Persistent)和脱管状态(Detached)。理解这些状态对于有效地管理和更新数据库中的数据至关重要。 **瞬时状态...

    Hibernate三种状态和Session常用的方法

    Hibernate三种状态和Session常用的方法 Hibernate 作为一个流行的 Java 持久层框架,提供了对数据库的操作能力,其中Session 是 Hibernate 中最核心的接口,负责管理对象的生命周期。为了更好地理解 Hibernate 的...

    Hibernate 对象的三种状态和特点

    以下是Hibernate对象的三种主要状态及其特点: 1) 临时状态(Transient State): 当通过`new`关键字创建一个新的对象时,该对象处于临时状态。在这个状态下,对象并未与任何Session关联,因此它的变化不会自动反映...

    hibernate_questions

    Hibernate 对象具有三种状态:瞬态(transient)、持久化(persistent)和游离(detached)。 - **瞬态(Transient)**:对象尚未与 Session 关联,此时对象的状态与数据库中的数据不一致。 - **持久化(Persistent...

    Hibernate中的实体状态及转换

    首先,我们要了解Hibernate定义的三种实体状态: 1. **临时状态(Transient)**:当我们在程序中通过`new`关键字创建一个实体对象时,它默认处于临时状态。此时,对象未被Hibernate管理,即使对象包含了主键ID,如果...

    hibernate对象三状态及OneToOne&OneToMany&ManyToMany

    本篇将详细阐述Hibernate中的对象三状态、一对一(OneToOne)、一对多(OneToMany)以及多对多(ManyToMany)关系映射。 一、Hibernate对象三状态 1. 游离态(Detached):对象在应用程序中创建,但尚未与Session...

    hibernate中session对象的状态详解

    hibernate中session对象的状态详解

    hibernate经典面试题

    整理的一些大公司hibernate方面的经典面试题,涵盖了hibernte的基本原理,重要接口,缓存机制,hibernate三种状态的转换原理等等

    05_传智播客hibernate教程_实体对象的三种状态与saveOrUpdate方法

    总结来说,理解和掌握实体对象的三种状态以及`saveOrUpdate`方法是优化Hibernate应用的基础。通过深入学习这些概念,开发者能够更有效地处理数据持久化,提高代码的稳定性和可维护性。在实践中,应根据具体需求选择...

    hibernate三状态

    其中,Hibernate的对象状态管理是其核心特性之一,理解并掌握对象的三种状态对于有效使用Hibernate至关重要。本文将详细解析Hibernate的三状态以及它们在实际开发中的应用。 一、Hibernate对象的三种状态 1. **瞬...

    Hibernate第三方类库

    在Java应用中,包括Hibernate,日志记录是非常关键的,因为它可以帮助开发者追踪程序运行状态,定位和解决问题。Log4j允许程序员定义不同级别的日志输出(如DEBUG、INFO、WARN、ERROR等),并可自定义日志输出的位置...

    hibernate相关配置 3种状态

    本篇将详细阐述Hibernate中的对象映射关系以及对象的三种状态。 对象映射是Hibernate的核心特性,它通过ORM(Object-Relational Mapping)技术将Java对象与数据库表之间的关系进行映射。Hibernate提供了一种声明式...

    精通hibernate3.0(第三版).rar

    1. Hibernate基本概念:介绍Hibernate的核心思想,如实体、持久化类、对象状态管理、事务处理等,帮助初学者建立对ORM框架的基本认识。 2. Hibernate配置:讲解如何配置Hibernate的XML文件,包括hibernate.cfg.xml...

    Hibernate Session 4种对象状态.docx

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

Global site tag (gtag.js) - Google Analytics