Hibernate“ON UPDATE CURRENT TIMESTAMP”列

时间:2011-05-23 19:08:31

标签: java hibernate java-ee

在MySQL中,可以在每次更新操作时更新TIMESTAMP行。有没有办法为Hibernate的列实现这一点并将其映射到POJO属性?

所以我有这样的事情:

@Column
private Date updated;

2 个答案:

答案 0 :(得分:5)

如果要在数据库端执行此操作,可以指定自定义列定义(如果模式由Hibernate生成,否则需要根据需要在模式中声明它),并指示Hibernate生成此属性在数据库方面:

@Column(columnDefinition = "TIMESTAMP ON UPDATE CURRENT TIMESTAMP")
@Generated(GenerationTime.ALWAYS)
private Date updated; 

或者,您可以在应用程序端执行此操作,如Jigar Joshi所建议。

答案 1 :(得分:3)

你可以用它来完成这件事

@PreUpdate
protected void onUpdate() {
   updated = new Date();
}