hibernate中对象的状态_习惯累积沉淀_新浪博客

hibernate里很基本的问题了
持久态对象
Hibernate使用get(id)获得的对象进行更改会在事务提交时持久化到数据库中(即使不用update和merge方法)
才知道是hibernate把get(id)获得的对象称为持久化对象,对其做的更改会在事务提交后保存到数据库中
你通过get(id)拿到的对象,就是持久化对象。
你对持久化对象的任何更改,会在session.flush或者提交事务的时候更新到数据库。
不过也要   结合事务。
如:
开启事务。
查询对象。
改变对象。//不需要显示的update。
提交事务。

save()了以后对象进入session缓存,成为持久态,事务提交的时候,根据持久化对象的OID来维持与数据库对应关系,
真正执行insert语句,也就是说,只要你执行了save()对象就变成持久太,这个时候如果你在修改这个对象的OID。
将抛出异常
反正sava方法只会为对象分配唯一的对象id标志,调用完sava方法但不提交事务后发不发sql跟你对象的主键生成策略相关。
持久化对象被修改变更后,不会马上同步到数据库,知道数据库事务提交。在同步之前,持久化对象是脏的(Dirty)。

http://blog.csdn.net/communicate_/article/details/8452786
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值