Прежде всего - вы правы, что вам нужно использовать класс java.sql.Timestamp, поскольку класс java.sql.Date явно не представляет конкретное время дня (скорее, он пытается представить полночь GMT).
Что касается вашей ошибки - вы не предоставили достаточно информации, чтобы сделать что-то большее, чем догадаться (для определения причины потребовалось бы изучить как конфигурацию Hibernate, так и класс). Однако , если вы просто изменили класс поля в классе Java, то, конечно, вам также придется обновить отображение Hibernate. Если вы не сделали последнего, то это, вероятно, приведет к вашему несоответствию. Попробуйте явно указать type="timestamp"
для соответствующего отображения.
РЕДАКТИРОВАТЬ: Если вы используете аннотации, то обновили ли вы аннотацию для этого свойства до @Temporal(TemporalType.TIMESTAMP)
? Если вы этого не сделали, то вам нужно будет (и если бы вы это сделали, вы должны были сказать так: -)).