hibernate乐观锁:当前线程中两次更新之间的另一个线程更新

hibernate乐观锁:当前线程中两次更新之间的另一个线程更新,hibernate,optimistic-locking,optimistic-concurrency,Hibernate,Optimistic Locking,Optimistic Concurrency,时间线如下所示: 用户(浏览器)---------------------------->更新目标2-----------------> 线程------->更新目标1------->长操作------->更新目标3 我启动一个线程来执行一个长_操作,并在操作前后更新目标对象 问题是,在长_操作期间,用户可以在UI中更新目标。因此,当我尝试在长_操作后更新目标时,我得到一个乐观锁异常 我使用版本号进行乐观锁定,更新2在事务中 我尝试在不同的事务中执行更新1和3->不起作用。 在执行update_

时间线如下所示:

用户(浏览器)---------------------------->更新目标2----------------->

线程------->更新目标1------->长操作------->更新目标3

我启动一个线程来执行一个长_操作,并在操作前后更新目标对象

问题是,在长_操作期间,用户可以在UI中更新目标。因此,当我尝试在长_操作后更新目标时,我得到一个乐观锁异常

我使用版本号进行乐观锁定,更新2在事务中

我尝试在不同的事务中执行更新1和3->不起作用。 在执行update_3->不起作用之前,我还尝试更新版本号


不确定在这里做什么是正确的……

我知道我做错了什么

在执行update_3之前,我需要从缓存中取出目标对象,并从数据库中重新读取它以获取最新版本

在我更新“旧”目标之前,因此得到乐观锁异常