在b站的ava实战项目,乐观锁部分使用新版本的乐观锁插件
@Configuration
@MapperScan("com.shaw.demotest.mapper")
public class MpConfig {
/*
* 乐观锁插件
* */
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
测试代码
@Test
public void optimisticLocker(){
User user=userMapper.selectById(1544580457188716546L);
user.setName("爱小鸭56");
// user.setVersion(1);
userMapper.updateById(user);
}
数据库中的name属性被修改,但是version为空。反复排查原因发现是设计数据库version字段时默认为null,乐观锁对值为null时不生效,手动修改为0后正常运行