Mybatis異常There is no getter for property named 'XXX' in 'class java.lang.String'


Mybatis版本:mybatis-3.0.6.jar

1.當入參為 string類型時 (包括java.lang.String.) 

我們使用#{xxx}引入參數.會拋異常There is no getter for property named 'XXX' in 'class java.lang.String'

<select id="getBookingCount" resultType="int" parameterType="string">

select count(*) from TB_EMPC_BOOKING_ORDER T

where (t.state = '1' or t.state = '2')

and t.appointmenttime = #{state} </select>

 

2.解決方法一:把#{xxx}修改為 #{_parameter} 即可

<select id="getBookingCount" resultType="int" parameterType="string">

select count(*) from TB_EMPC_BOOKING_ORDER T

where (t.state = '1' or t.state = '2')

and t.appointmenttime = #{_parameter} </select>

 

 

3.解決方法二:可以在方法中提前定義:

public int  methodName(@Param(value="state") String state ){

  ...

}

 

 

4.原因:Mybatis默認采用OGNL解析參數,所以會自動采用對象樹的形式取 string.xxx 值,如果沒在在方法中定義,則會拋異常報錯。

 

5.其他mybatis的版本不知道有沒有這個問題,暫時沒試過.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM