Bootstrap

MybatisePlus实现乐观锁但是由于版本号不更新导致失效

问题: 使用MybatisePlus通过自带的乐观锁机制去控制并发问题失效


场景: 实体类添加了@version注解, 配置类添加了乐观锁拦截器new OptimisticLockerInterceptor但是在实际更新数据的时候出现了并发的问题, 查看原因是版本好字段version每次更新后都没有被修改,导致每次查的时候都是相同的,所以每次都可以执行修改

解决方式:

        1.在更新的时候先把原来的数据version查出来, 然后手动比较是否相等, 相等就更新不相等就不更新(这也是乐观锁的核心逻辑)

        2.通过乐观锁拦截器去自动更新version的值,但是这样要先查,然后再更新, 直接通过创建对象的方式更新的话不会更新version的值(必须要先从数据库查出来,否则无效)

;