Reputation: 4675
Using Hibernate 3.5.1 and MSSQL 2008
Hi trying to implement the typical DateCreated and DateModified columns. The issue I have is that the time must be set from the DB not the application.
For DateCreated I can set the property to generated = always and set a default constraint (yes that reads right damn MS) on MS SQL 2008 to a default value of GetDate()
How would I go about it for DateModified?
Upvotes: 2
Views: 850
Reputation: 570615
For DateCreated I can set the property to
generated = always
and set a default constraint (yes that reads right damn MS) on MS SQL 2008 to a default value of GetDate()
Well, you should actually use generated = insert
for the creation date, it is not supposed to change upon subsequent updates and this will save an additional select for this column during updates.
How would I go about it for DateModified?
And this is where you should use generated = always
(and a trigger on the database side).
Here is what the reference documentation writes about them:
5.6. Generated properties
Generated properties are properties that have their values generated by the database. Typically, Hibernate applications needed to refresh objects that contain any properties for which the database was generating values. Marking properties as generated, however, lets the application delegate this responsibility to Hibernate. When Hibernate issues an SQL INSERT or UPDATE for an entity that has defined generated properties, it immediately issues a select afterwards to retrieve the generated values.
Properties marked as generated must additionally be non-insertable and non-updateable. Only versions, timestamps, and simple properties, can be marked as generated.
never
: (the default): the given property value is not generated within the database.
insert
: the given property value is generated on insert, but is not regenerated on subsequent updates. Properties like created-date fall into this category. Even though version and timestamp properties can be marked as generated, this option is not available.
always
: the property value is generated both on insert and on update.
Upvotes: 1