Hibernate之持久化对象的三种状态
来源:互联网 发布:嗜血法医知乎 编辑:程序博客网 时间:2024/05/16 10:06
一、 瞬时对象(Transient Object):
使用new操作符初始化的对象不是立刻就持久的。它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所引用),它们的状态将会丢失,并由垃圾回收机制回收
二、 持久化对象(Persistent Object):
持久实例是任何具有数据库标识的实例,它有持久化管理器Session统一管理,持久实例是在事务中进行操作的----它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQL的INSERT、UPDATE和DELETE语句把内存中的状态同步到数据库中。
三、 离线对象(Detached Object):
Session关闭之后,持久化对象就变为离线对象。离线表示这个对象不能再与数据库保持同步,它们不再受hibernate管理。
四、 三种状态的区分:
1、 有没有ID,(如果没有则是Transient状态)
2、 ID在数据库中有没有
3、 在内存里有没有(session缓存)
五、 总结:
Transient对象:随时可能被垃圾回收器回收(在数据库中没有于之对应的记录,应为是new初始化),而执行save()方法后,就变为Persistent对象(持久性对象),没有纳入session的管理
内存中一个对象,没有ID,缓存中也没有
Persistent对象:在数据库有存在的对应的记录,纳入session管理。在清理缓存(脏数据检查)的时候,会和数据库同步。
内存中有、缓存中有、数据库有(ID)
Detached对象:也可能被垃圾回收器回收掉(数据库中存在对应的记录,只是没有任何对象引用它是指session引用),注引状态经过Persistent状态,没有纳入session的管理
内存有、缓存没有、数据库有(ID)
- Hibernate之持久化对象的三种状态
- 【hibernate进阶】hibernate持久化对象的三种状态
- hibernate的持久化对象的三种状态
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态 .
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- 【SSH框架】--Hibernate持久化对象的三种状态
- 【Hibernate】——持久化对象的三种状态
- 【SSH系列】-- Hibernate持久化对象的三种状态
- 【Hibernate】持久化对象的三种状态
- optimization
- C# string与String的区别
- intel多核平台编程优化大赛报告
- 《Unix & Linux 大学教程》 - 第三、四章 学习笔记
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- Hibernate之持久化对象的三种状态
- 谷歌超级新福利曝光:员工去世妻子可领10年薪
- eclipse myeclipse的安装
- 《Unix & Linux 大学教程》 - 第五、六章 学习笔记
- 运行xml文件进行项目打包,拷贝jar包
- 店铺关门风波需要权力自我反思
- SQL: output的用法
- ORA-12154: TNS:无法处理服务名
- 《Unix & Linux 大学教程》 - 第七、八章 学习笔记