电光石火-穿越时空电光石火-穿越时空


mybatis-plus在更新数据时乐观锁version无效

今天在使用mybatis-plus乐观锁插件时,发现乐观锁并没有生效。
查了问题发现首先需要查询出结果(也就是需要version),然后再进行更新,这样乐观锁就能起作用了。

文档:https://mybatis.plus/guide/interceptor-optimistic-locker.html#optimisticlockerinnerinterceptor

OptimisticLockerInnerInterceptor

当要更新一条记录的时候,希望这条记录没有被别人更新
乐观锁实现方式:

  • 取出记录时,获取当前version
  • 更新时,带上这个version
  • 执行更新时, set version = newVersion where version = oldVersion
  • 如果version不对,就更新失败

使用了mybatis plus的乐观锁后,自己写sql更新内容时,不要加where version = xxx条件,也不需要手动给version + 1,mybatis会自己管理。自己再去维护会适得其反,只会导致更新永远是失败的。

本博客所有文章如无特别注明均为原创。作者:似水的流年
版权所有:《电光石火-穿越时空》 => mybatis-plus在更新数据时乐观锁version无效
本文地址:http://ilkhome.cn/index.php/archives/760/
欢迎转载!复制或转载请以超链接形式注明,文章为 似水的流年 原创,并注明原文地址 mybatis-plus在更新数据时乐观锁version无效,谢谢。

评论