gpt4 book ai didi

Java Hibernate对象(瞬时态,持久态,脱管态)详解

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java Hibernate对象(瞬时态,持久态,脱管态)详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Java Hibernate对象 。

           由于最近学习Java Hibernate,这里对Java Hibernate对象的几种状态进行了资料整理,  有兴趣的朋友可以看下.

瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象.

持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交; 。

          持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到).

 (当对象save后,会将数据持久化,这时obj.set()后再提交事务hibernate会检测到数据的修改.

而如果在save这个对象之前(即使是处在事务中),也即是还没有持久化这个对象之前,用obj.set()则hibernate不能检测到数据修改,不会影响数据库) 。

脱管/游离(detached):数据库中有数据与之对应,但当前没有session与之关联;脱管对象状态发生改变,hibernate不能检测到.

hibernate对象的三种状态,转换图

Java Hibernate对象(瞬时态,持久态,脱管态)详解

Java Hibernate对象(瞬时态,持久态,脱管态)详解

Commit()会关闭session 。

面试图:如果判断一个对象处于怎样的状态?

主要的依据是: 1. 看该对象是否处于session, 2, 看在数据库中有没有对应的记录 。

总结:

瞬时态: 没有session管理,同时数据库没有对应记录 。

持久态: 有session管理,同时在数据库中有记录 。

脱管态/游离态: 没有session管理,但是在数据库中有记录. 。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。

原文链接:http://www.cnblogs.com/xiangkejin/p/6000618.html 。

最后此篇关于Java Hibernate对象(瞬时态,持久态,脱管态)详解的文章就讲到这里了,如果你想了解更多关于Java Hibernate对象(瞬时态,持久态,脱管态)详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com