MyBatisPlus 乐观锁注解@Version注解

MyBatisPlus 乐观锁注解@Version注解

Version

  • 描述:乐观锁注解、标记 @Verison 在字段上

MybatisPlus有一个乐观锁注解,在使用的时候遇到一些问题。

乐观锁的字段在基类中,模型如下:

@Data
public class TblBase {
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    private Date createTime;

    @Version
    private Date lastUpdateTime;

    private String enableFlag;
}

更新代码如下:

@Test
public void update() {
    QueryWrapper<TblEmployee> queryWrapper = new QueryWrapper<>();
    LambdaQueryWrapper<TblEmployee> eq = queryWrapper.lambda().eq(TblEmployee::getCorpId, 2222);
    List<TblEmployee> tblEmployees = dao.selectList(eq);
    tblEmployees.forEach(p -> {
        p.setEmployeeNumber(String.format("P%s", p.getEmployeeNumber()));
        dao.updateById(p);
    });
}

运行后发现抛异常:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'MP_OPTLOCK_VERSION_ORIGINAL' not found. Available parameters are [param1, et]

	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)

需要注入一个拦截器

@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {

     @Bean
     public MybatisPlusInterceptor optimisticLockerInterceptor() {
         MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
         interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); 
         return interceptor;
     }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值