Parameter ‘MP_OPTLOCK_VERSION_ORIGINAL‘ not found

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

搜索【MP_OPTLOCK_VERSION_ORIGINAL】,是乐观锁相关

备注:前提 mybatisplus对象不用spring容器管理

1、配置文件上增加@Configuration注解 

错误依然存在

2、@Version注解

发现我确实用到了,打印sql, 发现是更新的时候报错了,打印了更新前后该字段的值。

更新之前是null,更新之后是1,所以更新之前错误的值(正确的应该是1)

修改自己的取数逻辑,数据库,代码中该字段都修改成int类型。

@Version注解的字段仅支持int,Integer,long,Long,Date,Timestamp,不支持String。

新增时,该注解的字段会默认值1, 更新的时候该字段自增1   set version=version+1 where version = version,确保每次修改都是取最新(别人没有更新过的)

错误依然存在

3、增加乐观锁拦截器配置

public OptimisticLockerInterceptor optimisticLockerInterceptor() {
        return new OptimisticLockerInterceptor();
    }

@Version注解,没有自动赋值,上面的拦截器配置没起作用。

错误依然存在

4、单步调试

没有mybatis-plus源码放弃

5、升级mybatis-plus版本到3.4.0, 乐观锁升级

错误依然存在

5、最后放弃使用@Version

后期研究mybatis-plus原理的时候再推进吧。

你可能感兴趣的:(apache)