想法读书简友广场

MybatisPlus乐观锁问题

2023-04-07  本文已影响0人  心笙共鸣

出现Caused by: org.apache.ibatis.binding.BindingException: Parameter 'MP_OPTLOCK_VERSION_ORIGINAL' not found. Available parameters are [param1, et]

image.png

实体类上标注,@Version


image.png

添加乐观锁拦截器


image.png

使用这个两个方式测试,出现开篇提到的错误


image.png
image.png

控制台输出的错误信息


1987bd8b9092fb379c6bd124cfddcf4.png
后面使用UpdateWrapper解决,似乎旧方式已经无法使用
image.png

代码实现如下,可按需求更改:

 User user = new User();
        user.setId(3L);
        user.setName("Jock889");
        //user.setVersion(2); //手动设置版本号
        userDao.update(user, new UpdateWrapper<User>().eq("id",
                user.getId()).eq("version",
                user.getVersion()).set("version", user.getVersion()+1));

模拟多用户同时访问

        //模拟多用户
        //创建用户1
        User user1 = userDao.selectById(4L);
        System.out.println("version 1" + user1.getVersion());

        //创建用户2
        User user2 = userDao.selectById(4L);
        System.out.println("version 2" + user2.getVersion());


        // 对用户1进行更新操作
        user1.setName("it aaa");
        userDao.update(user1, new UpdateWrapper<User>().eq("id",
                user1.getId()).eq("version",
                user1.getVersion()).set("version", user1.getVersion() + 1));




        // 对用户2进行更新操作
        user2.setName("it bbb");
        userDao.update(user2, new UpdateWrapper<User>().eq("id",
                user2.getId()).eq("version",
                user2.getVersion()).set("version", user2.getVersion() + 1));
上一篇下一篇

猜你喜欢

热点阅读