查阅官网,发现要用了新的版本,加入了如下代码:
@Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return mybatisPlusInterceptor; }
添加了依赖:
<!-- MybatisPlusInterceptor乐观锁--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.5.2</version> </dependency> </dependencies>
问题完美解决!!
是的,必须提前获取,不让你不知道原来的version是多少,而导致无法更新。
这个就得你手动抛出异常了,主要是看你想不想这么实现,就是调用update后,如果你用通用service中的update,返回false你就手动抛异常;如果用的是BaseMapper中的方法,返回的影响行数是0的话,手动抛出异常。
你是要多次复用QueryWrapper吗?使用乐观锁插件了吗?如果使用乐观锁插件,是不能多次复用QueryWrapper的。我一般是不会复用条件构造器的。
同学,你用的Mybatis-Plus是哪个版本?我也试试。
看着没有问题呀,如果你方便的话,把代码传到百度网盘或者码云上,给我链接,我调试调试。