引子:因为mybatis-plus版本更新 从1.0.5升级到了目前的3.2.0版本
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<!--<version>1.0.5</version>-->
<version>3.2.0</version>
</dependency>
以前的一些方法用不了了。入参的对象属性不识别了,升级之前经过多轮测试都是可以 的,升级之后报错,就某属性没绑定怎么的org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found.
这些参数是在xml里的<if test>判断的,但无法识别。
弄了半天,终于找到原因 ,dao层,传参我有两个对象 ,第一个是page对象(分页用的) ,第二个是对象实体
解决方式1:
升级前,可以。如对象实体里有个 userName属性,可以在里面直接用userName判断 ,取值,正常。
升级后 ,不能直接用userName判断,不识别,要用对象.才可以 arg1.userName 因为我对象是第二个对象,如果是第一个对象就要arg0.userName。测试正常。
解决方式2:
在dao层在 对象 ,加个@Param("XXX"),然后在xml里用xxx.userName 。测试正常
总结:
升级前如果带了Page对象和一个实体对象 ,会自动规避page对象,可以直接识别实体对象的值。
升级后如果带了Page对象和一个实体对象,会把这里当成两个对象,在xml里面不知道取哪个,要用对象点属性才能识别。
怎么升级之后反而变蠢了了?