hibernate 三种持久化对象的状态
2017-07-10 20:02
260 查看
临时状态:
使用对象new初始化的对象状态是瞬时的,也就是说没有跟任何数据库关联的行为,只要不应用这些对象,状态将会丢失,并有垃圾回收机制回收。
特征:
1、不处于Session的缓存中,不跟任何一个Session实例关联。
2、在数据库没记录。
以下情况下,Java对象进入临时状态
通过new语句创建一个java对象,处于临时状态。
Session的delete()方法能使持久化或者游离(脱管)的对象转换为临时状态的对象。
持久化状态:
持久化对象是任何具有数据库标识的实例。由Session统一管理,持久实例是在事务中进行操作的。当事务提交时,通过执行SQL的INSERT、UPDATE和DELETE语句把内存中的状态同步到数据库中.
持久化对象总是与Session和Transaction关联在一起,在一个session中,对持久化对象的操作不会立即写到数据库,只有当Transaction(事务)结束时,才真正的对数据库更新,从而完成持久化对象和数据库的同步。在同步之前的持久化对象成为脏对象。
游离(脱管)状态:
Session 关闭后 ,持久化状态的对象就成了离线对象。离线表示这个对象不能再与数据库保持同步。
与瞬时状态的区别是:离线对象是有持久化对象转过来的,数据库可能存在对应的记录。瞬时状态则无。
Session一下方法会让持久化状态变为游离状态的对象:close()//清空缓存,如没继续引用,结束生命周期,evict()//从缓存中删除一个持久化对象;
相关文章推荐
- Hibernate之持久化对象的三种状态
- Hibernate持久化对象的三种状态
- 新手上路之Hibernate(三):持久化对象三种状态以及session的Get()与Load()区别
- 【hibernate进阶】hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- ORM框架Hibernate (二) 持久化对象的三种状态分析
- hibernate中的PO持久化对象及PO三种状态
- 【SSH框架】--Hibernate持久化对象的三种状态
- Hibernate持久化对象存在三种状态
- Hibernate持久化对象三种状态的区分,以及save,update,saveOrUpdate,merge,persist等的使用
- Hibernate持久化对象的三种状态 .
- ORM框架Hibernate (二) 持久化对象的三种状态分析
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- Hibernate持久化对象的三种状态
- hibernate持久化对象的三种状态
- Hibernate的save(transientInstance)引发的持久化对象三种状态思考
- 【Hibernate】——持久化对象的三种状态
- hibernate的持久化对象的三种状态