Abbiamo contattato il supporto Oracle e ci hanno risposto come segue (purtroppo non sono in grado di fornire il link alla risposta perché è necessario un account di supporto Oracle):
Il nuovo comportamento funziona come previsto :
Le soluzioni alternative fornite funzionano per me:
Soluzione alternativa n. 1: Modifica l'applicazione per non inserire la componente temporale (es. con un UtilMethod statico)
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();
}
Soluzione alternativa n. 2: Scarica e applica la patch 19297927 da MOS:(My Oracle Support)
- Fai clic sulla scheda Patch e aggiornamenti.
- Inserisci il numero di patch sopra e fai clic su Cerca.
- Fai clic sul numero di patch corrispondente alla tua piattaforma dall'elenco
- Fai clic sul pulsante Download per scaricare la patch.
- Leggi tutte le note applicabili prima del download, quindi fai clic sul pulsante Scarica.
Dopo la patch, sostituire ojdb7.jar in %Oracle_Home%\oracle_common\modules\oracle.jdbc_12.1.0
e aggiungi -Doracle.jdbc.DateZeroTime=true
ai tuoi argomenti JVM