В спящем режиме, как использовать время базы данных? - PullRequest
4 голосов
/ 16 ноября 2010

Я использую метод отметки времени hibernate для обновления значения last_modified всякий раз, когда обновляется моя строка в таблице. Как это:

<timestamp name="lastModified" column="last_modified" />

Я использую postgres db. Когда Hibernate обновляет строку, запускается ли SQL с now () или плановой датой?

Причина в том, что я хочу использовать now (), чтобы даты были такими же, как и тогда, база данных будет назначать значение, а не appserver.

1 Ответ

2 голосов
/ 17 ноября 2010

Использование «timestamp» заставит Hibernate использовать свое представление о текущем времени, а не представление о базе данных (это было правильно с Hibernate 3.0, и я сомневаюсь, что оно изменилось с тех пор).

Если вы хотите, чтобы столбец получал время базы данных, вы можете использовать триггер для его заполнения при вставке / обновлении. Если вы хотите, чтобы сгенерированное время было возвращено Hibernate, используйте generated="always" или generated="insert" в зависимости от ситуации (и понизьте элемент timestamp до обычного property). Обратите внимание, что после обновления / вставки будут производиться дополнительные операторы выбора для получения сгенерированного состояния.

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