As described here
Oracle changed its handling of Date again with the 12.x drivers. The code
sets importantDate to a date with 00:00:00 when using 11.x - drivers, but 12.x saves the current time as well. As a result, date fields in entities annotated @Temporal(TemporalType.DATE) don't cut off the time part anymore.
Oracle12cDialect should provide a workaround to restore the intended behaviour.
Oracle 12c Database
ojdbc6 / ojdbc7 188.8.131.52.0
hibernate 4.2.19.Final-redhat-2 / hibernate 5.0.3.Final