对象持久性

1.对象的3种状态

  在Hibernate中,可以把实体对象看成有3种状态,分别是临时态、持久态、游离态。

2.临时态

  转换

    通过new创建的对象为临时态

    通过delete方法操作的对象将转变为临时态

  特征

    临时态的对象可以被垃圾回收

    临时态的对象未进行过持久化,未与session关联

3.持久态

  转换

    通过get、load、list、iterate方法查询到的对象为持久态

    通过save、update方法操作的对象转变为持久态

  特征

    持久态对象垃圾回收器不能回收

    持久态的对象进行了持久化,与session相关联。实际上持久态对象存在于session缓存中,由session负责管理。

    持久态对象的数据可以自动更新到数据库中,时机是在调用session.flush(),而提交事务时会调用session.flush(),因此提交事务时也会触发同步,可以理解为ts.commit=session.flush()+commit

4.游离态

  转换

    通过session的evict、clear、close方法操作的对象会转变为游离态

  特征

    游离态的对象可以被垃圾回收

    游离态的对象进行过持久化,但已与Session解除了关联

时间: 2024-11-13 02:06:48

对象持久性的相关文章

hibernate--持久对象的生命周期介绍

持久化对象的状态 : 1. 瞬时对象(Transient Object):使用new操作符初始化的对象不是立刻就持久的.它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所引用),它们的状态将会丢失,并由垃圾回收机制回收 2. 持久化对象(Persistent Object):持久实例是任何具有数据库标识的实例,它有持久化管理器Session统一管理,持久实例是在事务中进行操作的----它们的状态在事务结束时同数据库进行同步.当事务提交时

004---持久对象的生命周期介绍

持久化对象的状态: 1.   瞬时对象(Transient Object):使用new操作符初始化的对象不是立刻就持久的.它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所引用),它们的状态将会丢失,并由垃圾回收机制回收 2.   持久化对象(Persistent Object):持久实例是任何具有数据库标识的实例,它有持久化管理器Session统一管理,持久实例是在事务中进行操作的----它们的状态在事务结束时同数据库进行同步.当事务

[转]python pickle模块

持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象.通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识.另外,还会让您更深一步地了解Python 的对象序列化能力. 什么是持久性? 持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检索.这就是持久性.要达到这个目的,

C# 序列化

需要保存状态对象  持久性 序列化:  1在装置(圆盘.) 为了纪念类Serializable 这一类的足够的人才对象序列化 序列化二进制模式  相反,一个文本文件. 反序列化.  序列化对象的文件之前恢复

简析C++序列化

 1.什么是程序的序列化?  我们编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯.这个将程序数据转化成能被存储并传输的格式的过程被称为"序列化"(Serialization),而它的逆过程则可被称为"反序列化"(Deserialization). C++程序的序列化就是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存

谓词记录

首先,我们需要知道何谓谓词,让我们看看官方的解释: The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering. NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索. 可以使用谓词来表示逻辑条件,用于描述对象持久性存储在内存中的对象过滤.其实意思就是:我是一个过滤器,不符合条

ios 谓词的使用

首先,我们需要知道何谓谓词,让我们看看官方的解释: The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering. NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索.可以使用谓词来表示逻辑条件,用于描述对象持久性存储在内存中的对象过滤.其实意思就是:我是一个过滤器,不符合条件

delphi 各新版本特性收集

delphi 各新版本特性收集 Delphi XE6新增了一些特性并增强了原有的功能,主要有以下几个方面: IDE(整合开发环境) Internet XML(扩展标记语言) Compiler(编译器) COM/Active X Database support(数据库支持) CORBA Actions(动作) Custom Variants(可定义的可变类型) VCL 单元和特性 RTL单元和特性 Cross-platform development(跨平台开发) Translation too

面向对象 思维导图

最近在学习面向对象的过程中深有感触,于是整理了一些思维导图来加深理解. 1.面向对象思想 2.面向对象结构 3.面向对象流程 一些知识点: 1.OO和过程式程序设计的区别:在OO设计中,属性和行为都包含在一个对象中(称为封装),而在过程式程序设计(结构化设计)中,属性和行为是分开的. 2.在OO设计术语中,数据称为属性,行为称为方法. 3.获取方法和设置方法提供了对对象的数据的一种受控访问,获取方法和设置方法有时分别称为访问方法和修改方法. 4.类是对象的模板.当创建一个对象时,称为对象被实例化