我的要求:
我使用Quartz cron
来触发目的,许多触发器在同一行上运行但基于不同的列。所以当触发器需要更新其相关列时。触发第一次刷新(Session.refresh(object)
)对象属于它(在触发开始时选择对象),然后在行级别获取UPGRADE LOCK
。如果获取锁定成功,则更新列并使用session.update(object)
在DB中更新。并释放锁。
session.refresh(Object, LockMode.UPGRADE)
的替代方法是什么,以及使用hibernate避免脏更新的有效方法?
为什么在hibernate中不推荐使用它?
答案 0 :(得分:5)
session.refresh(Object, LockMode.UPGRADE)
的替代方法是什么,以及使用hibernate避免脏更新的有效方法?
<强>已过时即可。
LockMode
参数应替换为LockOptions
例如,使用refresh(Object,LockOptions)
。
它并没有说为什么,但很清楚要做什么。 (还有一个LockOptions.UPDATE
。)