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 中主要指将 Java 对象的状态保存到数据库中。 - **Session API**:提供了操作持久化对象的方法,如 save()、update() 和 delete() 等。 - **事务管理**...
除了序列化,还可以使用ORM(对象关系映射)框架如Hibernate来实现对象的持久化。 6. 工具类: 在处理流的过程中,Java提供了一些工具类,如StreamTokenizer,它可以帮助解析文本流,逐词读取流中的内容。还有...
- **持久态**: Session 已经保存了一个对象实例到数据库中,此时这个对象处于持久化状态。 - **脱管态**: 一个之前持久化的对象已经与 Session 断开关联。 ##### 3.2 生命周期流程 1. **加载/初始化**: 当应用程序...
- **对象导向应用程序中的持久化**:在面向对象的应用程序中,持久化通常涉及将对象状态转换为可以持久化存储的形式,然后再恢复回内存中的对象形式。 **1.2 对象/关系映射的不匹配** - **粒度问题**:在关系...
### hibernate4.1中文API知识点汇总 #### 1. 教程 ##### 1.1 第一部分 - 第一个Hibernate应用程序 ...- **加载一个对象**: 使用不同的方法加载持久化对象。 - **查询**: 使用HQL或其他查询语言执行复杂查询。
- **粒度问题**:对象模型中对象的状态通常由多个属性组成,而关系数据库则以记录为单位存储数据,这种差异可能导致数据冗余或丢失。 - **子类型问题**:面向对象编程中的继承结构很难在关系数据库中直接表达,这...
通过使用Hibernate,开发人员可以将面向对象的Java类与关系型数据库中的表进行映射,从而简化了数据持久化层的开发工作。 ### Hibernate的核心功能 1. **对象关系映射**:Hibernate允许开发者使用面向对象的方式来...
在大多数情况下,修改对象的状态只需在程序中直接操作,然后通过Hibernate保存更改。 Hibernate的API学习曲线平缓,它无缝融入程序流程,使得数据库操作更加自然。此外,Hibernate的数据库无关性也是一个显著优点,...
- **HQL (Hibernate Query Language)**: 类似于SQL的语言,用于查询持久化对象。 #### 14. 条件查询 - **条件查询**: 在HQL或SQL中添加WHERE子句实现。 #### 15. NATIVE SQL - **使用SQL QUERY**: 执行原生SQL...
- **一级缓存**:一级缓存是Hibernate自带的缓存,通常被称为“内部缓存”,用于存储当前`Session`中的对象状态。一级缓存是事务级别的缓存,随着`Session`的关闭而清空。 - **二级缓存**: - **应用级缓存**:...
4. **调试支持**:集成Hibernate的调试工具,允许开发者跟踪SQL执行,查看持久化对象的状态,以及进行单元测试。 5. **自动提示与补全**:如同在MyEclipse中,该插件提供了代码自动完成功能,帮助开发者快速输入...
一级缓存是每个Hibernate Session内的缓存,它是一个内存中的对象图,存储了最近查询到的持久化对象。当我们在Session中执行CRUD(创建、读取、更新、删除)操作时,这些对象会被自动放入一级缓存。一级缓存的主要...
持久化是系统在内存中的对象状态能够被保存到数据库中,并在后续的运行时恢复这些状态的关键技术。在jbpm5中,这涉及到实体如ProcessInstance、TaskInstance和VariableInstance的映射,它们分别对应流程实例、任务...
- **使对象持久化**:展示如何使对象成为持久化状态。 - **加载对象**:说明不同方式加载对象的方法。 - **查询**:介绍如何执行 HQL 查询、过滤集合、使用标准 SQL 等。 - **修改持久化对象**:讨论如何更新数据库...
- 持久化状态:对象与Session关联,对应数据库中的记录。 - 游离状态:从持久化状态变为游离,不再与Session关联,但数据库可能仍有对应记录。 6. **继承关系处理**: Hibernate支持单表继承、联合继承和多表...
通过以上详细分析,可以清晰地了解到 Hibernate 3.x 版本中关于快速启动、基础介绍、架构设计、配置管理、持久化类定义以及基本 ORM 映射的核心知识点。这些内容对于初学者理解和掌握 Hibernate 的基本用法至关重要...