码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate对象状态

时间:2015-06-14 21:17:07      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

对象状态

  瞬时(transient)

    自己new出来的对象,数据库没有记录与之对应,与session也没有关联

  持久(persistent)

    数据库中有记录与之对应,当前与session有关联,相关的session未关闭,事务未提交

    持久对象如果发生改变,Hibernate能够检测到,事务提交的时候会将改变后的数据提交给数据库

  脱管(detached,也有翻译成游离)

    数据库有记录与之对应,但没有与session关联,托管对象的改变Hibernate无法检测到

技术分享

 

 


 

 

使用场景

  对瞬时对象进行保存报错

  对脱管对象进行更新操作

  如果不清楚是瞬时还是脱管的,就执行saveOrUpdate或merge方法,由Hibernate判断是更新还是插入

    如果调用saveOrUpdate,那么对象会变成持久的,

    如果调用的是merge,那么对象还是脱管的

    id中可以设置unsaveed-value来决定id是什么值就是瞬时态

 

Hibernate对象状态

标签:

原文地址:http://www.cnblogs.com/sherrykid/p/4575687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!