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'

for ava 異常 public rom title mpc mybatis 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默認采用ONGL解析參數,所以會自動采用對象樹的形式取 string.xxx 值,如果沒在在方法中定義,則會拋異常報錯。

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

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