Ошибка при сопоставлении при использовании имени параметра
Я использую 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
в карту.