在初学mybatisPlus乐观锁时,遇到了这样的错误。在此给大家展现出来,避免后面踩坑。org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'MP_OPTLOCK_VERSION_ORIGINAL' not found. Available parameters are [param1, et]
遇到这种错误,有两种解决办法:
1、去pom依赖中降低mybatisPlus版本号
使用<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.7.1</version> </dependency>
就可以解决
2、使用新版的乐观锁拦截器
2.1乐观锁的使用步骤:
2.1.1数据库中添加version字
2.1.2在实体类中添加version属性,并且加上@version注解
@Version
private Integer version;//版本号属性
2.1.3 添加乐观锁拦截器
/**
* @Author: [seim]
* @emil: [webseim@126.com]
* @ClassName MyConfig
* @date 2021/7/17 10:49
* @Version 15
*/
@Configuration
@EnableTransactionManagement//开启事务自动管理(默认是有的,这里熟悉一下)
@MapperScan("cn.seim.mybatisplusdemo01.mapper")
public class MyConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
2.1.4 测试代码
@SpringBootTest
@Slf4j
public class MybatisPlusDemo01ApplicationTests {
@Autowired
private UserMapper userMapper;
//修改乐观锁操作
@Test
public void testOptimisticLocker(){
User user = userMapper.selectById(1416234574848139266L);
//进行修改
user.setAge(250);
int update = userMapper.updateById(user);
log.debug(String.valueOf(update));
}
}