Я пытаюсь сделать запрос в критериях API и ищу строки, где дата больше или равна предоставленной.
База данных Oracle -> hibernate -> приложение весенней загрузки
Определение столбца Oracle: TIMESTAMP с зоной времени
Конфигурация Hibernate: jpa.properties.hibernate.jdbc.time_zone: UTC
Сервер и база данных находятся в другом часовом поясе.
Карта столбцов как мгновенная
criteriaBuilder.greaterThanOrEqualTo(root.get("date"), this.startDate)
Генерируемый sql:
entity0_.date>=?
BasicBinder : binding parameter [7] as [TIMESTAMP] - [2019-10-01T00:11:11Z]
Когда я это делаюзапрос в sqlplus
select * from plan where date >= TIMESTAMP '2019-10-01 00:11:11 UTC'
Я получил правильный результат, но в спящем режиме я получил дополнительную строку, где, например, дата. 2019-10-01 00:00:00 UTC ', что является неправильным поведением.
Есть идеи, что не так с этим кодом?
Ps. Для ZonedDateTime это то же самое поведение