我正在尝试使用重试拦截器实现基本的乐观锁机制。
所以问题是有一个带有属性responseCount 的对象Quiz。如果在测验更新期间抛出乐观锁异常,则将从重试拦截器中再次调用相应的更新方法。
事情是不对的,因为重试方法每次都有相同的版本号,因此无论如何它都会使事务失败。
版本:10
进程A:开始更新测验,版本10 进程B:开始更新测验,版本10 进程B:完成更新测验,版本11 进程A:抛出乐观异常引发更新测验,重试进程A在重试方法中版本始终为10
那我能做什么?它应该自动增加版本以使交易成功