千山万水之Hibernate(二)——Hibernate的三态
来源:互联网 发布:56网络视频下载器 编辑:程序博客网 时间:2024/04/30 12:02
Session是Hibernate向应用程序提供的操纵数据库的最主要的接口,我们可以通过Session来操作Java对象,完成对应数据库的操作。从根据Session管理的角度来看需要持久化的对象可以分为三种状态:Transient、Persistent、Detached。它们之间的关系如图所示:
Transient(瞬时):没有被Session所管理(即不处于Session的缓存中)的持久化对象所处的状态。刚用new语句创建,还没有被持久化。
Persistent(持久化):已经被持久化,已经加入到Session缓存中,当提交事务清理缓存时,将同步到数据库。
Detached(游离状态):已经被持久化,但不处于Session的缓存中。
由此可见,java持久化对象状态是以是否被session管理以及是否持久化到数据库进行区分的。
从上图我们也可以看出,通过调用session接口方法,可以改变java对象所处的状态,比如在调用save方法时,可以使java对象转变为持久化对象;close方法可使java对象由持久化状态转变为游离状态。上图中的所标示出的方法也将是我们继续细节上的学习。
特征与进入条件
Transient对象与Detached的相同之处在于两者都不被Session管理,而两者的不同则在于Detached对象在DB中可能存在对应的记录,而Transient对象在DB中没有对应记录。
总结:
我们在使用Hibernate的时候,需要掌握它的基本机制原理,这样能够更方便的理解和应用Hibernate为我们提供的强大功能。也更能够清楚他的设计思路,最终达到更加熟练的应用以及后面的扩展!
0 0
- 千山万水之Hibernate(二)——Hibernate的三态
- 千山万水之Hibernate(十二)——hql(占位)
- 千山万水之Hibernate(一)——对象持久化
- 千山万水之Hibernate(三)——基本映射
- 千山万水之Hibernate(八)——继承映射
- 千山万水之Hibernate(九)——Component映射
- 千山万水之Hibernate(十)——抓取策略
- 千山万水之Hibernate(十三)——锁
- 千山万水之Hibernate(四)——关联映射(多对一)
- 千山万水之Hibernate(五)——关联映射(一对一)
- 千山万水之Hibernate(六)——关联映射(一对多)
- 千山万水之Hibernate(七)——关联映射(多对多)
- 千山万水之Hibernate(十一)——懒加载(占位)
- Hibernate之三态篇
- 详解Hibernate对象的三态 (上)
- 详解Hibernate对象的三态(中)
- 详解Hibernate对象的三态 (下)
- IT忍者神龟之hibernate三态
- ACM-最长公共子序列
- BigDecimal类
- <简约至上>感触
- 开发一个软件平台的一些心得体会
- ART运行时Compacting GC堆创建过程分析
- 千山万水之Hibernate(二)——Hibernate的三态
- 访问控制模型(Access Control Model)
- 5.5 收包系统调用
- 网络编程(TCP)
- RFID:智能卡的发展以及射频电子标签在其中所处的位置
- DedeCms 5.7后台去除版权及去除广告链操作详解
- method_opt中参数 auto跟skewonly的区别
- 【决策树】— C4.5算法建立决策树JAVA练习
- Redis+EJB缓存实现(三)