为什么在hibernate中不推荐使用session.refresh(Object,LockMode.UPGRADE)?

时间:2015-08-17 07:30:46

标签: java hibernate hibernate-session

我的要求:

我使用Quartz cron来触发目的,许多触发器在同一行上运行但基于不同的列。所以当触发器需要更新其相关列时。触发第一次刷新(Session.refresh(object))对象属于它(在触发开始时选择对象),然后在行级别获取UPGRADE LOCK。如果获取锁定成功,则更新列并使用session.update(object)在DB中更新。并释放锁。

session.refresh(Object, LockMode.UPGRADE)的替代方法是什么,以及使用hibernate避免脏更新的有效方法?

为什么在hibernate中不推荐使用它?

1 个答案:

答案 0 :(得分:5)

  

session.refresh(Object, LockMode.UPGRADE)的替代方法是什么,以及使用hibernate避免脏更新的有效方法?

就在the documentation

  

<强>已过时即可。 LockMode参数应替换为LockOptions

例如,使用refresh(Object,LockOptions)

它并没有说为什么,但很清楚要做什么。 (还有一个LockOptions.UPDATE。)