Кажется, нет простого способа использовать sysdate
в операторе вставки / обновления HQL. Вы можете использовать функцию current_timestamp()
для выбора HQL, но не для обновления / вставки.
Вопрос не ясен в отношении того, нужно ли вам делать это обновление в некоторых изолированных ситуациях, или в этом столбце будет всегда иметь дату базы данных в момент вставки / любого обновления сущности.
В случае, если вам нужны изолированные обновления: вы можете обойти это, определив свойство в вашей сущности, которое всегда будет содержать sysdate, с помощью @Formula
(value="select sysdate from dual")
. Если это свойство было названо sysdate
, вы могли бы добиться этого, выполнив update MyEntity e set e.myDate = e.sysdate
. Примите во внимание, что этот подход вводит прямую зависимость от Oracle.
Если столбец должен всегда обновляться с отметкой времени базы данных при каждом обновлении сущности, используйте подход @UdoFholl , указанный в его комментариях , или используйте триггер у вас есть этот уровень контроля над базой данных) и аннотируйте поле с помощью @Generated
.