Java 冬眠“;更新当前时间戳时“;柱

Java 冬眠“;更新当前时间戳时“;柱,java,hibernate,jakarta-ee,Java,Hibernate,Jakarta Ee,在MySQL中,可以在每次更新操作时更新时间戳行。有没有办法通过Hibernate为列实现这一点并将其映射到POJO属性 所以我有这样的东西: @Column private Date updated; 你可以用这个来完成这件事 @PreUpdate protected void onUpdate() { updated = new Date(); } 你可以用这个来完成这件事 @PreUpdate protected void onUpdate() { updated = ne

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

所以我有这样的东西:

@Column
private Date updated;

你可以用这个来完成这件事

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

你可以用这个来完成这件事

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

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

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

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

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

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

或者,您也可以按照Jigar Joshi的建议在应用程序端执行此操作。

如果您想在DB端执行此操作,请参阅axtavt的回答。我遵循您的方法,在我的情况下,它不起作用,值将为空。我正在使用Hibernate。你能帮忙吗。下面的答案很好,是的,如果您想在DB端执行此操作,请参阅axtavt的回答。我遵循您的方法,在我的情况下,它不起作用,值将为空。我正在使用Hibernate。你能帮忙吗。下面的答案是:hibernate能否在java.lang.Date和时间戳之间进行映射?在我的数据库中,Date总是masp到DateTime。hibernate能否在java.lang.Date和时间戳之间进行映射?在我的数据库中,Date总是masp到DateTime。