Hibernate @CreationTimestamp @UpdateTimestamp for Calendar

Ser*_*gii 5 java orm hibernate jpa

在我的实体中我有字段:

@UpdateTimestamp
@Column
private java.util.Calendar modifiedDate;
@CreationTimestamp
@Column
private java.util.Calendar createdDate;
Run Code Online (Sandbox Code Playgroud)

这些字段由hibernate更改.我看到结果保存到DB.在没有时间的DB保存数据中,我如何解释休眠日历应该用当前日期时间保存?


PS我看到了方法注释的解决方法,@PreUpdate @PrePersist我觉得我不需要.

Mac*_*ski 6

根据有关Calendar数据类型的JPA规范:

@Temporal-必须为java.util.Date和java.util.Calendar类型的持久字段或属性指定此批注。

在您的情况下,您应该使用:

@Temporal(TemporalType.TIMESTAMP)
Run Code Online (Sandbox Code Playgroud)

对于两个领域。

另一个解决方案是将java.util.Calendar更改为java.sql.Timestamp:

@UpdateTimestamp
@Column
private java.sql.Timestamp modifiedDate;
@CreationTimestamp
@Column
private java.sql.Timestamp createdDate;
Run Code Online (Sandbox Code Playgroud)