简单理解hibernate三种状态的概念及互相转化

上传人:ji****n 文档编号:45693917 上传时间:2018-06-18 格式:DOC 页数:2 大小:25.50KB
返回 下载 相关 举报
简单理解hibernate三种状态的概念及互相转化_第1页
第1页 / 共2页
简单理解hibernate三种状态的概念及互相转化_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《简单理解hibernate三种状态的概念及互相转化》由会员分享,可在线阅读,更多相关《简单理解hibernate三种状态的概念及互相转化(2页珍藏版)》请在金锄头文库上搜索。

1、在 Hibernate 中有三种状态,对它的深入理解,才能更好的理解 hibernate 的运行机理,刚开始不太注意这些概念,后来发现 它是重要的。 对于理解 hibernate,JVM 和 sql 的关系有更好的理解。对于需要持久化的 JAVA 对象,在它的生命周期中有 三种状态,而且互相转化。 Hibernate 三种状态之一:临时状态(Transient):用 new 创建的对象,它没有持久化,没有处于 Session 中,处于此状态的 对象叫临时对象; Hibernate 三种状态之二:持久化状态(Persistent):已经持久化,加入到了 Session 缓存中。如通过 hiber

2、nate 语句保存的对 象。处于此状态的对象叫持久对象; Hibernate 三种状态之三:游离状态(Detached):持久化对象脱离了 Session 的对象。如 Session 缓存被清空的对象。特点: 已经持久化,但不在 Session 缓存中。处于此状态的对象叫游离对象;Hibernate 三种状态中游离对象和临时对象异同:三种状态中游离对象和临时对象异同: 两者都不会被 Session 关联,对象属性和数据库可能不一致; 游离对象由持久化对象关闭 Session 而转化而来,在内存中还有对象所以此时就变成游离状态了; Hibernate 和和 SQL 的关系:的关系: 在操作了 h

3、ibernate 的方法如 save()等后,并没有直接生成 sql 语句,去操作数据库,而是把这些更新存入 Session 中,只有 Session 缓存要被更新时,底层的 sql 语句才能执行,数据存入数据库; 下面举例说明: 一,Session.save(user)运行机理。1,把 User 对象加入缓存中,使它变成持久化对象; 2,选用映射文件指定的标识生成 ID; 3,在 Session 清理缓存时候执行:在底层生成一个 insert sql 语句,把对象存入数据库; 注意:在你执行 Session.save(user)后,在 Session 清理缓存前,如果你修改 user 对象属性值,那么最终存入数据库的值将是 最后修改的值;此过程中 ID 不能被修改; 二,Session.delete(user)运行过程。 如果 user 是持久化对象,则执行删除操作,同样底层数据库的执行条件是:在 Session 清理缓存时候; 如果 user 是游离对象: 1,将 user 对象和 Session 关联,使之成为持久化对象; 2,然后按照 user 是持久化对象的过程执行;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号