hibernate 数据的三个状态

我们把数据库比喻成一个登记簿吧,当我们把信息登记到登记簿上的时候,这个过程就是持久化的过程。当登记完成之后,登记簿上的数据就是

持久态数据,所谓持久态就是一直存在的状态。当我们需要用数据的时候,会从登记簿上查信息,我们查到的信息记录在临时的纸张或者脑海里

,然后登记簿会放回原位,这时候临时纸张上或者脑海里的数据就是游离态,随时可能被遗忘,在hibernate中就是随时会被销毁的数据。瞬态数

据和游离态数据有点儿类似,但是一点,就是他是存在持久化之前的数据,就是说我需要登记个人信息,我的个人信息还没有登记到登记簿上的
时候,信息就是瞬态,一旦登记到登记簿上就变成持久态了,然后再查询到的就是游离态。

. 瞬时状态(临时状态)

当new 对象时候,处于瞬时状态(如果程序运行完了,该对象会被垃圾回收)


b. 持久状态


跟session有关,就是持久状态


持久状态的对象,任何的修改,都会影响到数据库中与之对应的数据


c. 托管状态(游离状态)


当session不在管理对象的时候,脱离了session 的管理,处于托管状态的对象,修改属性,对数据库数据没有任何影响


企业开发中,使用saveOrUpdate(obj): 来替代save(obj)或update(obj)

方法避免因为状态的改变,导致方法出错, saveOrUpdate(obj)


可以根据obj的状态,来选择是save()还是update()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值