Я понимаю, что на этот вопрос уже был дан ответ, но мы боролись с этим сегодня, поэтому я хотел дать немного больше понимания будущим людям, которые сталкиваются с этим.
Использование Oracle 11g с драйверами версии 11, если вы не используете временную аннотацию, тогда каждый тип данных даты, времени и метки времени из Oracle будет сопоставляться с меткой времени в вашем коде во время выполнения.С функциональной точки зрения это нормально, однако это вызвало у нас серьезные проблемы с производительностью.Это было потому, что у нас был тип DATE как часть составного первичного ключа.Этот столбец был ведущим столбцом индекса, а также столбцом, который мы использовали для разделения.Когда драйвер попытается сохранить записи с этим столбцом в предложении where, Oracle выполнит преобразование типа данных в БД из DATE в TIMESTAMP.Это делало индекс бесполезным, а производительность была ужасной.
Длинная история, добавьте эту аннотацию всегда, чтобы не быть готовым заплатить цену.