`

【转】hibernate中持久化对象的状态图解析

阅读更多
hibernate中对象的状态图可以用UML的状态图表示如下:


session就是一级缓存

对以上图形的解析:1.当一个对象被new了以后此对象处于瞬时态(Transient);2.然后对此对象执行session的save() 或者saveOrUpdate()方法后,此对象被放入session的一级缓存(即map里(key="对象的id" value="对象本身"))进入持久态.3.当再对此对象执行evict()/close()/clear()的操作后此对象进入游离态(Detached)4.游离态(Detached)和瞬时态(Transient)的对象由于没有被session管理会在适当的时机被java的垃圾回收站(garbage)回收.5.执行session的get()/load()/find()/iternte()等方法从数据库里查询的到的对象,处于持久态(Persistent).  7. 当对数据库中的纪录进行update()/saveOrUpdate()/lock()操作后游离态的对象就过渡到持久态 6.处于持久态(Persistent)与游离态(Detached)的对象在数据库中都有对应的记录.7.瞬时态(Transient)与游离态(Detached)的对象都可以被回收可是瞬时态的对象在数据库中没有对应的纪录,而游离态的对象在数据库中有对用的纪录。
  • 大小: 16.9 KB
分享到:
评论

相关推荐

    Hibernate 工作原理图Hibernate 工作原理图

    - **持久态**: Session 已经保存了一个对象实例到数据库中,此时这个对象处于持久化状态。 - **脱管态**: 一个之前持久化的对象已经与 Session 断开关联。 ##### 3.2 生命周期流程 1. **加载/初始化**: 当应用程序...

    Hibernate中文文档

    持久化是指将内存中的数据保存到磁盘上的过程,在 Hibernate 中主要指将 Java 对象的状态保存到数据库中。 - **Session API**:提供了操作持久化对象的方法,如 save()、update() 和 delete() 等。 - **事务管理**...

    字节流,字符流,对象流,序列化,持久化

    除了序列化,还可以使用ORM(对象关系映射)框架如Hibernate来实现对象的持久化。 6. 工具类: 在处理流的过程中,Java提供了一些工具类,如StreamTokenizer,它可以帮助解析文本流,逐词读取流中的内容。还有...

    hibernate

    - **对象导向应用程序中的持久化**:在面向对象的应用程序中,持久化通常涉及将对象状态转换为可以持久化存储的形式,然后再恢复回内存中的对象形式。 **1.2 对象/关系映射的不匹配** - **粒度问题**:在关系...

    hibernate4.1中文api

    ### hibernate4.1中文API知识点汇总 #### 1. 教程 ##### 1.1 第一部分 - 第一个Hibernate应用程序 ...- **加载一个对象**: 使用不同的方法加载持久化对象。 - **查询**: 使用HQL或其他查询语言执行复杂查询。

    Hibernate in Action

    - **粒度问题**:对象模型中对象的状态通常由多个属性组成,而关系数据库则以记录为单位存储数据,这种差异可能导致数据冗余或丢失。 - **子类型问题**:面向对象编程中的继承结构很难在关系数据库中直接表达,这...

    hibernate 图书 资料

    通过使用Hibernate,开发人员可以将面向对象的Java类与关系型数据库中的表进行映射,从而简化了数据持久化层的开发工作。 ### Hibernate的核心功能 1. **对象关系映射**:Hibernate允许开发者使用面向对象的方式来...

    从头到脚跟你解释什么是Hibernate - renco的专栏

    在大多数情况下,修改对象的状态只需在程序中直接操作,然后通过Hibernate保存更改。 Hibernate的API学习曲线平缓,它无缝融入程序流程,使得数据库操作更加自然。此外,Hibernate的数据库无关性也是一个显著优点,...

    Hibernate学习.pdf

    - **HQL (Hibernate Query Language)**: 类似于SQL的语言,用于查询持久化对象。 #### 14. 条件查询 - **条件查询**: 在HQL或SQL中添加WHERE子句实现。 #### 15. NATIVE SQL - **使用SQL QUERY**: 执行原生SQL...

    夏昕.深入浅出Hibernate.PDF

    15. **实体生命周期**:Hibernate定义了实体的几种状态(瞬时、持久化、脱管和临时),理解这些状态对于正确管理和操作对象至关重要。 以上内容只是《深入浅出Hibernate》的部分核心知识点,实际书籍中还会涉及更多...

    常见hibernate面试题.doc

    - **一级缓存**:一级缓存是Hibernate自带的缓存,通常被称为“内部缓存”,用于存储当前`Session`中的对象状态。一级缓存是事务级别的缓存,随着`Session`的关闭而清空。 - **二级缓存**: - **应用级缓存**:...

    eclipse_hibernate3.3IDE插件

    4. **调试支持**:集成Hibernate的调试工具,允许开发者跟踪SQL执行,查看持久化对象的状态,以及进行单元测试。 5. **自动提示与补全**:如同在MyEclipse中,该插件提供了代码自动完成功能,帮助开发者快速输入...

    Hibernate一级缓存和二级缓存

    一级缓存是每个Hibernate Session内的缓存,它是一个内存中的对象图,存储了最近查询到的持久化对象。当我们在Session中执行CRUD(创建、读取、更新、删除)操作时,这些对象会被自动放入一级缓存。一级缓存的主要...

    jbpm5 持久化及流转流程源码剖析

    持久化是系统在内存中的对象状态能够被保存到数据库中,并在后续的运行时恢复这些状态的关键技术。在jbpm5中,这涉及到实体如ProcessInstance、TaskInstance和VariableInstance的映射,它们分别对应流程实例、任务...

    hibernate3.6 文档(pdf 格式)

    - **使对象持久化**:展示如何使对象成为持久化状态。 - **加载对象**:说明不同方式加载对象的方法。 - **查询**:介绍如何执行 HQL 查询、过滤集合、使用标准 SQL 等。 - **修改持久化对象**:讨论如何更新数据库...

    2022年Hibernate常见面试题汇总.doc

    - 持久化状态:对象与Session关联,对应数据库中的记录。 - 游离状态:从持久化状态变为游离,不再与Session关联,但数据库可能仍有对应记录。 6. **继承关系处理**: Hibernate支持单表继承、联合继承和多表...

    Hibernate 3.x 参考手册

    通过以上详细分析,可以清晰地了解到 Hibernate 3.x 版本中关于快速启动、基础介绍、架构设计、配置管理、持久化类定义以及基本 ORM 映射的核心知识点。这些内容对于初学者理解和掌握 Hibernate 的基本用法至关重要...

Global site tag (gtag.js) - Google Analytics