MybatisPlus乐观锁失效问题

今天在使用MybatisPlus的乐观锁插件的时候,发现一件事:明明我的配置文件都配置好了,但是在执行update( ) 方法时version一直没有改变。

后来发现,原来是MybatisPlus中的规则所限制,规则如下:

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

我们必须要先取出当前记录,获得当前的version版本号,然后执行update( ) 语句,只有这样version字段才能生效。

正确的范例代码如下

    @Test
    void test() {
//        使用selectById取出当前记录,只有这样version才能生效
        Users user =mapper.selectById(4);;
        user.setName("小明");
        user.setAge(20);
        mapper.updateById(user);
    }

posted @ 2022-11-17 20:27  ThinkStu  阅读(57)  评论(0)    收藏  举报