4.2.2 更新detached对象的持久化状态

 

在session关闭之后再去修改user不会对数据库中的数据造成任何影响。当session被关闭之后,user变成了一个detached对象。需要通过update()或者lock()方法来重新和一个新的session关联。

Update() 方法强迫执行一个更新数据库的状态。下面是一个例子:

对象的状态在update()方法之前还是之后更新并不重要。重要的是通过update()方法重新和session进行关联,它告诉Hibernate将此对象当作一个脏数据处理。

下面的例子则列举了使用lock()方法:

在这个例子中,数据状态的改变的时间点就变得不那么随意。在lock()方法之前做的改变不会被更新到数据库,之后在其后更改的数据才能生效。

我们将在下章讨论Hibernate的锁模式。通过设置LockMOde.NONE,我们告诉Hibernate不需要获取任何和数据库级别的锁。如果我们制定了LockMode.READ或者LockMode.UPGRADE,那么Hibernate就会用SELECT来执行版本的检测。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值