问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

hibernate三种状态各之间是什么意思

发布网友 发布时间:2022-04-13 21:20

我来回答

4个回答

懂视网 时间:2022-04-14 01:41

在Hibernate中有三种状态,对它的深入理解,才能更好的理解hibernate的运行机理,刚开始不太注意这些概念,后来发现它是重要的。

在Hibernate中有三种状态,对它的深入理解,才能更好的理解hibernate的运行机理,刚开始不太注意这些概念,后来发现它是重要的。对于理解hibernate,JVM和sql的关系有更好的理解。对于需要持久化的JAVA对象,在它的生命周期中有三种状态,而且互相转化。

1, 临时状态(Transient):用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫临时对象;

2, 持久化状态(Persistent):已经持久化,加入到了Session缓存中。如通过hibernate语句保存的对象。处于此状态的对象叫持久对象;

3, 游离状态(Detached):持久化对象脱离了Session的对象。如Session缓存被清空的对象。
特点:已经持久化,但不在Session缓存中。处于此状态的对象叫游离对象;

×√

临时状态

(Transient)

持久化状态

(Persistent)

游离状态

(Detached)

是否处于Session缓存中

×

×

数据库中是否有对应记录

×

hibernate3.gif


游离对象和临时对象异同:

两者都不会被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 是持久化对象的过程执行;

linux

热心网友 时间:2022-04-13 22:49

对于和ibernate而言,对象有三种状态:瞬时对象,持久对象,游离对象或脱管对象
1.瞬时(transient):数据库中没有数据与之对应,超过作用域会被jvm的垃圾收集器回收,一般是new出来且与session没有关联的对象
2.持久(persistent):数据库中有数据与之对应,当前session有关联,并且相关联的session没有关闭,事务没有提交;持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到 )。
3,脱管(detached):数据库中有数据与之对应,但当前没有session与之关联;脱管对象状态发生改变,hibernate不能检测到。

热心网友 时间:2022-04-14 00:07

1.瞬时状态:不和session实例关联,在数据库中没有和瞬时对象关联的记录
2.持久状态:和session实例关联,在数据库中有何他关联的记录
3.游离状态:当他与对象关联的session关闭之后,这个对象就变为了游离状态,但是对象可继续被修改,本质上他与瞬时状态相同,只是比瞬时状态的对象多了一个数据库记录标识和ID
他们三个之间也可以相互转换。

热心网友 时间:2022-04-14 01:42

1,瞬时态(临时态)
a,不被session管理
b,数据库中没有这条记录
c,可以被JVM垃圾回收
2,持久太
a,被session管理
b,数据库中记录存储
c,不能回收
3,游离态(脱离态)
a,不被session管理
b,数据库中有记录
c,可以被JVM垃圾回收
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
婴幼儿认知功能的主义转变出现在几岁 认知发展理论心理发展过程 如何判断相亲对象是否渣男呢? 游船怎么造句 mei字造句 赏阅怎么造句 张金战个人记事 空调扇怎么关 matlab怎么运行程序文件-matlab运行程序文件的方法教程 ios8.1.1怎么没有搜索栏了 男人心中的好女人是什么样子的? oppo手机升降摄像头无法识别面部 哪种模样的女人,在男人眼中是值得好好珍惜的? 什么样的女人才是男人眼中的好女人? 男人与女人称兄道妹意味着什么? 男生心目中理想的女生形象 一个男人喜欢我还跟我老公称兄道弟怎么回事 男女之间能称兄道弟吗? 男人的眼里,最有女人味的女人一般都有什么特征? 有没有可以在宿舍烧水但是不用插头可以接充电 男人心中的好女人标准 男人和女人称兄道弟 不锈钢烧水壶里边装过电池电解液,水壶还能烧水吗 对男人来说,什么样的女人才能是好老婆? 汽车车载水壶能用理电加热吗? 求助男生,如果一个男生对女生称兄道弟,那这个男生是不是不喜欢这个女生啊!只想当朋友的那种? 男生心中的好女生是什么样的? 男朋友叫我兄弟是什么意思 我是女的,一个男的叫我兄弟,什么意思? 男人心中好女人是怎么样的? 电池烧毁 男人心中的好女人形象? 谁说新能源不能郊游,这四款“大充电宝”免去做饭烦恼 3.2V20Ah,25个锂电池串联总电流是多少? 何罗鱼的传说典故 做梦梦见被警察抓还和他做了好朋友 梦见同学被警察带走又回来了 梦见同学伤害我,我逃出去找到警察把她们都抓住了 跑了一个? Hibernate对象状态分类的详细说明 生鸭蛋放多久就不能吃了 为什么荣耀手环5表盘显示的时间和正常时间不一样? 想给2012年5月9号晚上八点半出生的女孩取个好听点的名字 姓马 最好是四字的名字 会给你们追加高分的哦 女孩名字姓马几个字都可以4个字的也行好听点洋气点的!!!谢谢了 女孩字四个字的名字姓马 荣耀手环5亮屏多长时间? 我姓马,老婆姓孙,想给女孩起个四个字的名字,好听点的 谁帮我起个马姓四字女孩名字 急寻姓马要带土字旁的四个字好听的名字...是个女孩子哦! 姓马叫什么好听女孩两个字或者四个字 吃红枣会引起上火吗 ?我怎么一吃红枣就舌头根儿疼 ?