1. 程式人生 > >Mybatis中傳參包There is no getter for property named 'XXX' in 'class java.lang.String'

Mybatis中傳參包There is no getter for property named 'XXX' in 'class java.lang.String'

col mybatis hone mybatis查詢 默認 lec named ongl bsp

Mybatis中傳參包There is no getter for property named ‘XXX‘ in ‘class java.lang.String‘

一、發現問題

<select id="queryStudentByNum" resultType="student" parameterType="string">

select num,name,phone from student
<where>
<if test = " num!=null and num!=‘‘ ">
AND num = #{num}
</if>
</where>

</select>
Mybatis查詢傳入一個字符串傳參數,報There is no getter for property named ‘num‘ in ‘class java.lang.String‘。


二、解決問題

<select id="queryStudentByNum" resultType="student" parameterType="string">

select num,name,phone from student
<where>
<if test = "_parameter!=null">
AND num = #{_parameter}

</if>
</where>
</select>
無論參數名,都要改成"_parameter"


三、原因分析

Mybatis默認采用ONGL解析參數,所以會自動采用對象樹的形式取string.num值,引起報錯。也可以public List methodName(@Param(value="num") String num)的方法說明參數值

Mybatis中傳參包There is no getter for property named 'XXX' in 'class java.lang.String'