首页 > Web开发 > 详细

千山万水之Hibernate(二)——Hibernate的三态

时间:2015-04-01 00:22:53      阅读:160      评论:0      收藏:0      [点我收藏+]

        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为我们提供的强大功能。也更能够清楚他的设计思路,最终达到更加熟练的应用以及后面的扩展!

千山万水之Hibernate(二)——Hibernate的三态

原文:http://blog.csdn.net/lfsfxytgb9_lyg/article/details/44789309

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!