在hibernate中,如何利用数据库时间?

我正在使用hibernate的timestamp方法更新表中的行更新时的last_modified值.像这样:

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

我正在使用postgres db.当Hibernate更新行时,是否使用now()或计划香草日期触发SQL?

原因是我希望它使用now()所以日期是一致的,因为数据库将分配值而不是appserver.

最佳答案 使用“timestamp”将使Hibernate使用它对当前时间的想法,而不是数据库的想法(这在Hibernate 3.0中是正确的,我怀疑它已经改变了).

如果希望列接收数据库时间,可以使用触发器在插入/更新时填充它.如果您希望Hibernate检索回生成的时间,请根据需要使用generated =“always”或generated =“insert”(并将timestamp元素降级为普通属性).请注意,这将在更新/插入后生成其他select语句以检索生成的状态.

点赞