Обновлять записи с помощью метки времени where с Hibernate HQL - PullRequest
0 голосов
/ 08 мая 2019

Я написал запрос в Hibernate HQL, который обновляет некоторые записи со столбцами меток времени:

, где предложение:

creationTime >= :creationTimeFrom and creationTime <= :creationTimeTo

set Параметры:

query.setDate("creationTimeFrom", creationTimeFrom);
query.setDate("creationTimeTo", creationTimeTo);

В некоторыхВ случаях, когда результат запроса не совпадает с записями правильно, а некоторые записи не обновляются,

Я полагаю, проблема в часовом поясе. Часовой пояс сервера Oracle установлен на UTC.но часовой пояс клиента отличается.

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Я использую устаревший класс в своем HQL-коде. Я исправил это, и проблема была решена.

0 голосов
/ 08 мая 2019

Возможно, вы захотите попытаться установить TimeZone явно, в противном случае используется календарь JVM по умолчанию.

TimeZone.setDefault( TimeZone.getTimeZone( "UTC" ) );

Начиная с Hibernate 5.2.3:

settings.put(
    AvailableSettings.JDBC_TIME_ZONE,
    TimeZone.getTimeZone( "UTC" )
);

Ссылка: jdbc-time-zone-configuration-property:

...