引子:因爲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裏面不知道取哪個,要用對象點屬性才能識別。
怎麼升級之後反而變蠢了了?