hibernate三种状态的问题?

瞬时状态下的数据正在进行持久化操作之时,毫无疑问会变成持久化,在session关闭之后会成为游离数据,但是反过来,当从数据库把一条资料查出来就直接装在一个没有new的对象... 瞬时状态下的数据正在进行持久化操作之时,毫无疑问会变成持久化,在session关闭之后会成为游离数据,但是反过来,当从数据库把一条资料查出来就直接装在一个没有new的对象里“时”,会是持久化状态,有些人认为其实即使从数据中读取出来内部new对象的操作只是封装了,最终还是叫瞬时数据?我想了解三种状态的处理转换的实质原理?不知有没有哪位大侠可以告知小弟? 展开
 我来答
jiangrujie2005
2011-12-27 · TA获得超过819个赞
知道小有建树答主
回答量:447
采纳率:0%
帮助的人:340万
展开全部
我比较喜欢举例子,通俗的例子,这样更直观。
我们把数据库比喻成一个登记簿吧
当我们把信息登记到登记簿上的时候,这个过程就是持久化的过程。当登记完成之后,登记簿上的数据就是持久态数据,所谓持久态就是一直存在的状态。
当我们需要用数据的时候,会从登记簿上查信息,我们查到的信息记录在临时的纸张或者脑海里,然后登记簿会放回原位,这时候临时纸张上或者脑海里的数据就是游离态,随时可能被遗忘,在hibernate中就是随时会被销毁的数据。
瞬态数据和游离态数据有点儿类似,但是一点,就是他是存在持久化之前的数据,就是说我需要登记个人信息,我的个人信息还没有登记到登记簿上的时候,信息就是瞬态,一旦登记到登记簿上就变成持久态了,然后再查询到的就是游离态。

有问题没?可以明白了吧,那就……你懂得。。。
ahyyxx222
2011-12-27 · TA获得超过2532个赞
知道小有建树答主
回答量:1405
采纳率:33%
帮助的人:1193万
展开全部
hibernate会自己创建一个继承于你的实体类的子类,子类里有一些表示状态和字段关联信息的属性,能追踪到当前的连接状态,和实体类的属性值变化。
通过这些属性控制转换。
追问
具体怎么转化呢,反射回去吗,还是一步步调试回去?
追答
需要读hibernate源码,我没看过。
状态值与session的维持机制有关,也不是简单的几个名词可以说明的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang530279
2011-12-27
知道答主
回答量:12
采纳率:0%
帮助的人:12.1万
展开全部
1,瞬时态(临时态)
a,不被session管理
b,数据库中没有这条记录
c,可以被JVM垃圾回收
2,持久太
a,被session管理
b,数据库中记录存储
c,不能回收
3,游离态(脱离态)
a,不被session管理
b,数据库中有记录
c,可以被JVM垃圾回收
更多追问追答
追问
这个我看了的..更原理的,实质
追答
找源码去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毛帅项巍然
2020-06-25 · TA获得超过1006个赞
知道小有建树答主
回答量:1267
采纳率:100%
帮助的人:8.5万
展开全部
hibernate的对象有3种状态,
分别为:瞬时态(transient)、持久态(persistent)、脱管态(detached)
.处于持久态的对象也称为po(persistenceobject),瞬时对象和脱管对象也称为vo(valueobject).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式