У меня ошибка при сравнении дат в ibatis в Springboot 2.0, и у меня нет идей.
Мой Mapper выглядит следующим образом (с использованием MySql):
@Select("select count(s.id,r.date) from eshrsys.score s join eshrsys.round on (s.round_id = r.id) where r.date > '#{date,jdbcType=DATE}'")
Integer getScoreCountFromDate(Date date);
Я передаю действительный объект java.sql.date, который не является нулевым. Но я получаю эту ошибку, ссылаясь на сравнение дат:
2018-09-02 21: 14: 23.999 ОШИБКА 5644 --- [nio-8088-exec-2]
o.a.c.c.C. [. [. [/]. [dispatcherServlet]: Servlet.service () для
сервлет [dispatcherServlet] в контексте с путем [] вызвал исключение
[Ошибка обработки запроса; вложенное исключение
org.mybatis.spring.MyBatisSystemException: вложенное исключение
org.apache.ibatis.type.TypeException: не удалось установить параметры для
отображение: ParameterMapping {property = 'date', mode = IN, javaType = class
java.sql.Date, jdbcType = DATE, numericScale = null, resultMapId = 'null',
jdbcTypeName = 'null', выражение = 'null'}. Причина:
org.apache.ibatis.type.TypeException: ошибка установки ненулевого значения для
параметр # 1 с JdbcType DATE. Попробуйте установить другой JdbcType для
этот параметр или другое свойство конфигурации. Причина:
java.sql.SQLException: индекс параметра вне диапазона (1> число
параметры, который равен 0).]
Я пробовал несколько различных обходных путей: от преобразования входных данных до строки перед их отправкой, удаления одинарных кавычек до воспроизведения с помощью jdbcType. Ничего не сработало.