Mybatis バージョン: mybatis-3.0.6.jar
1. 入力パラメータが文字列型 (java.lang.String を含む) の場合、
#{xxx} を使用してパラメータを導入します。例外がスローされます。「class java」には「XXX」という名前のプロパティのゲッターがありません。 .lang.文字列'
<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. 解決策 1: #{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. 解決策 2: メソッドで事前に定義できます。
public int methodName(@Param(value="state") String state ){
...
}
4. 理由: Mybatis はデフォルトで OGNL を使用してパラメーターを解析するため、自動的にオブジェクト ツリーを使用して string.xxx 値を取得します。メソッドで定義されていない場合は、例外がスローされ、エラーが報告されます。
5. 他の mybatis バージョンでもこの問題が発生するかどうかはわかりません。まだ試していません。
参考:https://www.cnblogs.com/orac/p/6726323.html