简单理解hibernate三种状态的概念及互相转化
-
资源ID:45693917
资源大小:25.50KB
全文页数:2页
- 资源格式: DOC
下载积分:20金贝
快捷下载
账号登录下载
微信登录下载
微信扫一扫登录
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
|
下载须知 | 常见问题汇总
|
简单理解hibernate三种状态的概念及互相转化
在 Hibernate 中有三种状态,对它的深入理解,才能更好的理解 hibernate 的运行机理,刚开始不太注意这些概念,后来发现 它是重要的。 对于理解 hibernate,JVM 和 sql 的关系有更好的理解。对于需要持久化的 JAVA 对象,在它的生命周期中有 三种状态,而且互相转化。 Hibernate 三种状态之一:临时状态(Transient):用 new 创建的对象,它没有持久化,没有处于 Session 中,处于此状态的 对象叫临时对象; Hibernate 三种状态之二:持久化状态(Persistent):已经持久化,加入到了 Session 缓存中。如通过 hibernate 语句保存的对 象。处于此状态的对象叫持久对象; Hibernate 三种状态之三:游离状态(Detached):持久化对象脱离了 Session 的对象。如 Session 缓存被清空的对象。特点: 已经持久化,但不在 Session 缓存中。处于此状态的对象叫游离对象;Hibernate 三种状态中游离对象和临时对象异同:三种状态中游离对象和临时对象异同: 两者都不会被 Session 关联,对象属性和数据库可能不一致; 游离对象由持久化对象关闭 Session 而转化而来,在内存中还有对象所以此时就变成游离状态了; Hibernate 和和 SQL 的关系:的关系: 在操作了 hibernate 的方法如 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 是持久化对象的过程执行;