Hibernate DateCreated, DateModified столбцы из БД, а не VM (приложение) - PullRequest
2 голосов
/ 20 сентября 2010

Использование Hibernate 3.5.1 и MSSQL 2008

Привет, пытаюсь реализовать типичные столбцы DateCreated и DateModified. У меня проблема в том, что время должно быть установлено из БД, а не из приложения.

Для DateCreated я могу установить в свойстве Generated = Always значение всегда и установить ограничение по умолчанию (да, которое читает, черт побери, MS) в MS SQL 2008 в значение по умолчанию GetDate ()

Как бы я поступил об этом для DateModified?

1 Ответ

1 голос
/ 20 сентября 2010

Для DateCreated я могу установить для свойства generated = always и установить ограничение по умолчанию (да, которое читает чертовски верно MS) в MS SQL 2008 в значение по умолчанию GetDate ()

Ну, на самом деле вы должны использовать generated = insert для даты создания, она не должна меняться при последующих обновлениях, и это сохранит дополнительный выбор для этого столбца во время обновлений.

Как бы я поступилоб этом для DateModified?

И здесь вы должны использовать generated = always (и триггер на стороне базы данных).

Вот что пишет о них справочная документация:

5,6.Сгенерированные свойства

Сгенерированные свойства - это свойства, значения которых создаются базой данных.Как правило, приложениям Hibernate требуется обновить объекты, которые содержат любые свойства, для которых база данных генерировала значения.Однако пометка свойств как сгенерированных позволяет приложению делегировать эту ответственность Hibernate.Когда Hibernate выдает SQL INSERT или UPDATE для объекта, который определил сгенерированные свойства, он сразу же выполняет выбор для извлечения сгенерированных значений.

Свойства, помеченные как сгенерированные, должны дополнительно не вставляться и не обновляться.Только сгенерированные версии, отметки времени и простые свойства могут быть помечены как сгенерированные.

  • never: (по умолчанию): данное значение свойства не генерируется в базе данных.

  • insert: указанное значение свойства создается при вставке, но не создается при последующих обновлениях.Свойства, такие как дата создания, попадают в эту категорию.Даже если свойства версии и метки времени можно пометить как сгенерированные, эта опция недоступна.

  • always: значение свойства генерируется как при вставке, так и при обновлении.

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