有遇到mapper接口一個參數,有時候報錯情況:There is no getter for property named 'XXX' in 'class java.lang.String,
報錯原因:Mybatis默認採用ONGL解析參數,所以會自動採用對象樹的形式取string.num值,引起報錯
解決方法普遍有2種:
1、直接在mapper接口裏面給參數在@Param註解,如:public List methodName(@Param(value="num") String num)的方法說明參數值,註解將參數轉成map
2、在xml中使用_parameter來代替參數名,如:
<if test="_parameter != '1'.toString() ">
PARENT_ID = #{_parameter}
</if>
一般常用方法1
後面又看到一編好博客,值得學習,是源碼深入解析mapper由於篇幅太長,這裏就直接保存地址,方便查看 https://blog.csdn.net/isea533/article/details/44002219