我正在使用hibernate的timestamp方法在表中的行更新时更新last_modified值。像这样:
<timestamp name="lastModified" column="last_modified" />
我正在使用postgres db。当Hibernate更新行时,是否使用now()或计划vanilla日期激活SQL?
原因是我希望它使用now()所以日期是一致的,因为数据库将分配值而不是appserver。
答案 0 :(得分:2)
使用“timestamp”将使Hibernate使用它对当前时间的想法,而不是数据库的想法(这在Hibernate 3.0中是正确的,我怀疑它已经改变了。)
如果希望列接收数据库时间,可以使用触发器在插入/更新时填充它。如果您希望Hibernate检索回生成的时间,请根据需要使用generated="always"
或generated="insert"
(并将timestamp
元素降级为普通property
)。请注意,这将在更新/插入后生成其他select语句,以检索生成的状态。