我创建了一个抽象实体类,只有审计字段即。 createdDate和modifiedDate。我希望hibernate在触发相应的查询时自动为这些java.lang.Long
类型的字段生成值。
我正在尝试使用@CreationTimestamp
(org.hibernate.annotations.CreationTimestamp)但春天抱怨以下 -
调用init方法失败;嵌套异常是org.hibernate.HibernateException:生成器注释的不支持的属性类型@CreationTimestamp
我也尝试了@Temporal
,但这不适用于Long
类型的字段。我不想将日期存储在java.util.Date
类型中。
请帮忙。
答案 0 :(得分:0)
如果您使用的是JPA,可以这样做
private Long createdDate;
private Long updatedDate;
@PrePersist
protected void onCreate() {
createdDate = System.currentTimeMillis();
updatedDate = System.currentTimeMillis();
}
@PreUpdate
protected void onUpdate() {
updatedDate = System.currentTimeMillis();
}
说完为什么你不想让updateDate成为Date ???我会考虑把它变成一个日期而不是长日。
请参阅Creation timestamp and last update timestamp with Hibernate and MySQL