我正在调查我们系统中的一个问题,其中两个特定长操作的并发运行事务尝试更新同一个表行。由于当前没有锁定,因此提交第二个事务的事务会导致第一个事务的更新丢失。我想通过乐观锁定来避免这种情况。
问题是我们目前没有启用乐观锁定。如果我现在通过添加专用版本号列来启用乐观锁定,则会为该表上的每个更新启用此功能。代码库是遗留的,我们不了解它的大部分内容。因此,系统中可能存在其他长时间运行的操作,这些操作将在启用乐观锁定时失败,其中一些甚至可能适用于过时的更新。此外,我们不想在不知道系统的哪些部分可能受到影响的情况下引入任何新错误。
所以,我的问题:
hibernate中是否有办法仅针对某些更新执行乐观锁定。
根据我的理解,通过阅读hibernate文档,使用专用的版本号或时间戳将为每次更新启用表上的乐观锁定。