引子:因为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里面不知道取哪个,要用对象点属性才能识别。
怎么升级之后反而变蠢了了?
升级MyBatis-Plus到3.2.0后,使用Page对象和实体对象时,XML中直接引用实体属性不再有效,需通过对象指针访问。本文探讨了解决方案,包括使用对象指针和@Param注解。
1763

被折叠的 条评论
为什么被折叠?



