Я использую Spring Data, и я использую родной запрос:SpringData неправильные результаты при использовании родного запроса и дата свойство
@Query(value = "SELECT DISTINCT(t.foo_id) FROM t_bar t where time > ?1", nativeQuery = true)
List<String> getFoo(DateTime after);
Например, это возвращает 3
результаты.
Native запрос непосредственно в сервере MySQL:
SELECT DISTINCT(t.foo_id) FROM t_bar t where time > '2016-08-16T11:44:00.002+02:00'
возвращает 0
результатов.
Даты равны для обоих.
Результаты отличаются от использования чистого запроса sql, выглядит time
свойство не используется или неправильно. Что не так ?
Edit:
@Query(value = "SELECT DISTINCT(t.foo_id) FROM t_bar t where time > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL ?1 HOUR)", nativeQuery = true)
List<String> getFoo(int lastHours);
Возвращает правильные результаты.
Но все еще проблема существует, что может вызвать это?
Я думаю, что это опечатка в документации, все остальные индексы начинается с 1 в примерах. Также у меня была ошибка, если я помню, связанный с этим. Также мой третий пример возвращает правильный результат с аргументом? 1. Я подтвержу это вечером. – kxyz
Как я уже говорил, в документации есть опечатка, она насчитывает от 1, при этом исключение составляет 0 исключений – kxyz