Apa saja jenis kolom di MySQL? Saya menduga ini DATETIME. Jenis ini tidak menyimpan "momen dalam waktu", tetapi menyimpan "jam pada jam", sehingga dapat berarti momen yang berbeda di zona waktu yang berbeda.
Ketika driver MySQL menulis java.util.Date ke kolom DATETIME, ia harus memilih beberapa zona waktu untuk menulis "jam pada jam", karena java.util.Date yang sama dapat berarti jam yang berbeda di zona waktu yang berbeda. Ini menyimpan jam seperti di zona waktu lokal server MySQL.
LocalDateTime tidak memiliki masalah ini, karena seperti DATETIME. Ini mewakili jam pada jam, bukan saat dalam waktu, sehingga tahun/bulan/hari-jam/menit/detik hanya disimpan dalam database. Pemberitahuan di log hibernasi LocalDateTime diberikan apa adanya, sementara ada zona waktu ("CST") di sebelah Tanggal.
Secara umum, ini adalah praktik yang baik untuk menyimpan waktu selalu dalam UTC, jadi gunakan DateTime, bukan Date atau LocalDateTime. DateTime dengan konverter jadira selalu menyimpan/membaca DATETIME sebagai UTC.