`
maoyi606
  • 浏览: 36087 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate 三种状态

    博客分类:
  • SSH
 
阅读更多
Hibernate三种状态之一:临时状态 (Transient):用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫临时对象;
表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联,该实体从未与任何持久化上下文联系过,没有持久化标识(相当与主键)。
瞬态实体的特征有:
               与数据库中的记录没有任何关联,也就是没有与其相关联的数据库记录

               与Session没有任何关系,也就是没有通过Session对象的实例对其进行任何持久化的操作。

Hibernate三种状态之二:持久化状态 (Persistent):已经持久化,加入到了Session缓存中。如通过hibernate语句保存的对象。处于此状态的对象叫持久对象;
指该实体对象处于Hibernate框架所管理的状态,也就是说这个实体对象是与Session对象的实例相关的。处于持久态的实体对象的最大特征是对其所作的任何变更操作都将被Hibernate持久化到数据库中
处于持久态的对象具有的特征为:             
               每个持久态对象都于一个Session对象关联
               处于持久态的对象是于数据库中的记录相关联的
               Hibernate会根据持久态对象的属性的变化而改变数据库中的相应记录

Hibernate三种状态之三:游离状态 (Detached):持久化对象脱离了Session的对象。如Session缓存被清空的对象。特点:已经持久化,但不在Session缓存中。处于此状态的对象叫游离对象;
处于持久态的实体对象,当他不再与Session对象关联时,这个对象就变成了游离态。
游离态对象的特征有:
                游离态对象一定是由持久态对象转换而来
                游离态实体不再于Session关联
               游离态实体对象与数据库中的数据没有直接联系,主要表现在对其进行的修改不再影响到数据库中的数据
               游离态实体对象在数据库中有相应的数据记录(如果该记录没有被删除)

三者间转化
new 对象——>瞬时态
瞬时态—save/saveOrUpdate—>持久态
持久态—session.close/clear/evict—>游离态—session.save/session.saveOrUpdate/session.lock—>持久态
持久态—session.delete—>瞬时态
游离态—session.delete—>瞬时态

分享到:
评论

相关推荐

    Hibernate三种状态

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

    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