Свързахме се с отдела за поддръжка на Oracle и те отговориха по следния начин (за съжаление не мога да дам връзка към отговора, тъй като е необходим акаунт за поддръжка на Oracle):
Новото поведение работи по предназначение :
Заобиколните решения ми свършиха работа:
Заобиколно решение №1: Променете приложението, за да не вмъквате времевия компонент (напр. със статичен UtilMethod)
public static Date truncateTime(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
Заобиколно решение №2: Изтеглете и приложете корекция 19297927 от MOS:(Моята поддръжка на Oracle)
- Щракнете върху раздела Корекции и актуализации.
- Въведете горния номер на корекция и щракнете върху Търсене.
- Щракнете върху номера на корекцията, съответстващ на вашата платформа от списъка
- Щракнете върху бутона за изтегляне, за да изтеглите корекцията.
- Прочетете всички приложими бележки, преди да изтеглите, след което щракнете върху бутона Изтегляне.
След корекция заменете ojdb7.jar в %Oracle_Home%\oracle_common\modules\oracle.jdbc_12.1.0
и добавете -Doracle.jdbc.DateZeroTime=true
към вашите JVM аргументи