web-dev-qa-db-ja.com

パラメータ名を使用するときのマッパーのエラー

私はmybatis 3.2.3でSpring 3.2.0 MVCを、ojdbc6 11.2.0.2.0でmybatis-spring 1.2.1を使用しています。

異なるタイプ(日付と整数)の2つのパラメーターで定義されたXMLマッパーがあります。クエリでそれらを#{myid}および#{mydate}として参照しますが、ibatisからエラーが発生します。

org.Apache.ibatis.binding.BindingException: Parameter 'myid' not found. Available parameters are [1, 0, param1, param2]

パラメータを#{0}および#{1}として参照すると、すべて正常に動作します。

単一のパラメーターのみを持つ別のマッパーがあり、パラメーターを#{myDate}として参照できます(唯一の違いは、XMLに次のようになっていることです:

<select id="getAllbyDate" parameterType="date" resultType="com.test.myTest">

私の問題は、複数のパラメーターを含むクエリでは、XMLファイルでパラメーター名を指定できないことです。名前を1つのパラメーターで参照することができます。

13
mrkb80

マッパーインターフェイスでJavaファイルは、このようなメソッドを記述します

public List<com.test.myTest> getAllbyDate(@Param("date") Date date, @Param("myid") int myid) 

次に、xmlファイルを変更します。

<select id="getAllbyDate" parameterType="map" resultType="com.test.myTest"> 

Mybatisはすべてのパラメーターを注釈@Paramマップに。

26
Larry.Z