Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux集群 > Architecture > » 正文

hibernate持久化生命周期

来源: weiwei07241126 分享至:

持久化生命周期

要掌握session的使用,首先要掌握持久化生命周期,一个持久化类的实例在持久化生命周期中会在不同的状态之间转变。Hibernate定义四种状态。

(1)、瞬时状态(transient)

         该实例是刚用new语句创建的,还没有被持久化,不处于任何session的缓存中。它没有对象标示符值(主键值)。

         特点:不跟任何一个session实例关联。在数据库中没有对应的记录。

(2)、持久化状态(persistent)

         已经被持久化,加入到session缓存中。实例目前与某个session有关联。它拥有对象标示符值,并且可能在数据库中有一个对应的行。Hibernate保证在同一个Session实例的缓存中,数据库中的每条记录只对应唯一的一个持久化实例。

         特点:持久化对象总是被一个session实例关联。持久化实例和数据库中的相关记录对应。Session在清理缓存时,会根据持久化实例的属性数据变化,同步更新数据库。

(3)移除状态(removed

         如果一个对象已经被计划在一个Session上下文结束时删除,他就处于移除状态,但仍然处于session的缓存中,直到工作单元结束。

         实例处理移除状态时不应该被重用,因为一旦工作单元完成,它就将立即从数据库中被删除。

(4)脱管(detached)状态

         已经被持久化过,但已经不处于session的缓存中。实例曾经与某个session上下文发生过关联,不过那个上下文已经被关闭。它拥有对象标识符值,并且在数据库中可能存在一个对应的行。

         特点:不在位于session的缓存中,即他不再和session关联。但它拥有对象标示符值。


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史