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原理的时候再推进吧。