为什么 session.refresh(Object, LockMode.UPGRADE) 在休眠中被弃用?

Why session.refresh(Object, LockMode.UPGRADE) is deprecated in hibernate?

我的要求:

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

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

为什么它在休眠中被弃用?

What is the alternative of session.refresh(Object, LockMode.UPGRADE) and efficient way to avoid dirty update using hibernate ?

就在the documentation

Deprecated. LockMode parameter should be replaced with LockOptions

例如,使用refresh(Object,LockOptions)

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