当前使用版本(必填,否则不予处理)
3.4.0
该问题是如何引起的?(确定最新版也有问题再提!!!)
我的程序是使用了乐观锁OptimisticLockerInnerInterceptor
我希望改造Mapper后都传入Entity进行的改方法单纯的叫update 于是我自定义了一个SusoftBaseMapper替代原有BaseMapper 将updateById ->update,updateById->updateEntity两个方法 1.报错的改int update(@Param(Constants.ENTITY) T entity); 2.正常的改int updateEntity(@Param(Constants.ENTITY) T entity);
这两个方法是实现的一模一样,除了方法名不同外全部相同
重现步骤(如果有就写完整)
报错信息
调用update时提示 Caused by: org.apache.ibatis.binding.BindingException: Parameter 'MP_OPTLOCK_VERSION_ORIGINAL' not found. Available parameters are [ew, param1, et]
调用updateEntity时提示,正常通过
Comment From: miemieYaho
你自己改出的毛病就自己去处理
Comment From: thl283406834
这不叫你自己改出的毛病就自己去处理的问题。 我的实现代码一模一样,我的方法名变化导致我的程序执行结果不正确,难道update方法名是个关键字方法名吗。 那在你们官网也没有给出这是个关键字方法名无法使用的提示。
Comment From: miemieYaho
去看乐观锁插件源码
Comment From: thl283406834
并且我的改造方式是按照你们所给的自定义Mapper去实现的。 恰好碰到了update属于默认方法名的问题。