Hibernate中 对象 的三种状态
2015-07-21 14:32
288 查看
在Hibernate中,可以把实体对象看成3中状态,分别是:瞬时态(临时态)、持久态、脱管态(游离态)。
临时态
转换通过new创建的对象为瞬时态
通过delete方法操作的对象将转变为瞬时态
特征
瞬时态的对象可以被垃圾回收
瞬时态的对象未进行过持久化,未与session关联
持久态
转换通过get 、load 、list 、iterate 方法查询到的对象为持久态
通过save 、update 方法操作的对象转变为持久态
特征
持久态对象垃圾回收器不能回收
持久态对象进行了持久化,与session相关联,实际上持久态对象存在于session缓存中,由session负责管理。
持久态对象的数据可以自动更新到数据库中,时机是在调用session.flush()时执行。而提交事务时会调用session.flush(),因此提交事务时也会触发同步,可以理解为ts.commit=session.flush()+commit
脱管态
转换通过session的evict 、clear 、close 方法操作的对象会转变为脱管态
特征
脱管态的对象可以被垃圾回收
脱管态的对象进行过持久化,但已于session解除了关联
3种状态的转换:
瞬时态: session、数据库 里都没有。
持久态: session、数据库 里都有
脱管态: session里有、数据库里没有
相关文章推荐
- Java多线程--售票代码
- ios NSDateComponents 时间计算方法
- Qt QLabel::setBuddy函数
- SequoiaDB 系列之五 :源码分析之main函数
- 散列表(Hash)
- 使用xca生成SSL证书
- 【tomacat集群】Linux或 window配置多个Tomcat同时运行-完美解决-未来星开发团队-费元星
- NPOI 1.1
- HTML学习笔记——CSS初涉
- lamp编译安装--在一台机子上实验
- spring下载地址
- PAT (Basic Level) Practise (中文)1023. 组个最小数 (20)C语言
- Android管理篇
- 关于 overridePendingTransition()使用
- X32和X64平台下不同数据类型对应的字节数
- Longest Common Prefix
- 组合模式
- ExtJS学习-------Ext正确Dom操作:Ext.get Ext.fly Ext.getDom
- android == 和 equals
- 文件上传1