#java #spring #postgresql #mybatis
Вопрос:
У меня возникли проблемы с моим кодом, использующим foreach в mybatis, и он продолжает замечать, что синтаксическая ошибка возникает около «$3», которую я никогда не использовал в запросе.
Я попытался изменить тип параметра
- из списка массивов в список,
- из ArrayListlt;Объектgt; в ArrayListlt;Объектgt;lt;Строкаgt;.
Версия mybatis-3.0, а база данных-postgres.
вот мой вопрос.
lt;XML filegt; lt;mapper namespace="some.namespace.service.impl.SomeServiceImpl"gt; lt;select id="someId" parameterType="someCVO" resultType="someVO"gt; ... where date_column gt;= date #{startDate} and date_column amp;lt; date #{endDate} integer '1' and lt;foreach collection="menu" item="item" index="index" separator="or" open="(" close=")"gt; column = #{item} lt;/foreachgt; lt;/selectgt;
И это сообщение об ошибке:
Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near "$3"; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "$3"
Комментарии:
1.
item="item index="index"
ты упускаешь"
что-то там2.
$3
Это заполнитель параметра в сгенерированном операторе SQL, означающий, что что-то не так с преобразованием вашего оператора mybatis в SQL.3. Я думаю, что это может относиться к части foreach, которая обрабатывает третье значение. 1=Дата начала, 2=дата окончания, 3=товар. «Плохая грамматика SQL []» может указывать на то, что коллекция меню пуста.
4. извините, пропущено » после элемента в запросе была опечатка. я отредактировал это, спасибо.
5. @Psymonkey Вы должны проверить фактический SQL, включив ведение журнала уровня ОТЛАДКИ. Если вам нужна дополнительная помощь, пожалуйста, добавьте в вопрос зарегистрированный SQL.