Ошибка при сопоставлении при использовании имени параметра

Я использую Spring 3.2.0 MVC с mybatis 3.2.3 и mybatis- spring 1.2.1 с ojdbc6 11.2.0.2.0

У меня есть 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

В файле интерфейса интерфейса 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 в карту.