Как вставить / обновить sysdate, используя критерии гибернации? - PullRequest
0 голосов
/ 28 октября 2011

Я использую пружину в спящем режиме.моя база данных оракул.Я хочу обновить / сохранить записи с sysdate.мы можем вставить / обновить sysdate, используя HQL.но я не знаю, как вставить sysdate, используя критерии.Пожалуйста, помогите мне.

Спасибо!

1 Ответ

1 голос
/ 28 октября 2011

Кажется, нет простого способа использовать sysdate в операторе вставки / обновления HQL. Вы можете использовать функцию current_timestamp() для выбора HQL, но не для обновления / вставки.

Вопрос не ясен в отношении того, нужно ли вам делать это обновление в некоторых изолированных ситуациях, или в этом столбце будет всегда иметь дату базы данных в момент вставки / любого обновления сущности.

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

  • Если столбец должен всегда обновляться с отметкой времени базы данных при каждом обновлении сущности, используйте подход @UdoFholl , указанный в его комментариях , или используйте триггер у вас есть этот уровень контроля над базой данных) и аннотируйте поле с помощью @Generated.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...