Po的hibernate中po对象的三种状态

 我来答
漫步联盟00CFD
2016-05-10 · TA获得超过169个赞
知道答主
回答量:195
采纳率:0%
帮助的人:125万
展开全部

在Hibernate中,最核心的概念就是对PO的状态管理。一个PO有三种状态:
1.transient:瞬态或者自由态
未被持久化的VO,此时就是一个内存对象VO,由JVM管理生命周期。
2.persistent:持久化状态
已被持久化的PO,并且在Session生命周期内,此时映射数据库连接,由数据库管理生命周期。
3.detached:脱管状态或者游离状态
曾被持久化过,但现在和Session已经托管(detached)了,以VO的身份在运行。它还可以进入另一个Session,继续PO状态管理。 当通过get或load方法得到的po对象它们都处于persistent,但如果执行delete(po)时(但不能执行事务),该po状态就处于detached,(表示和session脱离关联),因delete而变成游离态可以通过save或saveOrUpdate()变成持久态。 当把session关闭时,session缓存中的persistent的po对象也变成detached因关闭session而变成游离态的可以通过lock、save、update变成持久态持久态实例可以通过调用delete()变成脱管状态。通过get()或load()方法得到的实例都是持久化状态的。 脱管状态的实例可以通过调用lock()或者replicate()进行持久化 。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式