Jelies提到的是正确的方法。您只需实例化日期对象
private Date currrent = new Date();
在对象创建期间,然后将其持久化。
@Temporal(TemporalType.TIMESTAMP)
除此之外,如果您有机会将该字段current
与任何 java.util.Date 对象进行比较,因为保存的字段将作为 java.sql.Timestamp 加载,则用于存储日期和时间是不安全的。原因在这里提到。
注意:此类型是 java.util.Date 和单独的纳秒值的组合。只有整数秒存储在 java.util.Date 组件中。小数秒 - 纳秒 - 是分开的。Timestamp.equals(Object) 方法在传递 java.util.Date 类型的值时永远不会返回 true,因为日期的 nanos 组件是未知的。因此,Timestamp.equals(Object) 方法相对于 java.util.Date.equals(Object) 方法不是对称的。此外,hashcode 方法使用底层的 java.util.Date 实现,因此在其计算中不包括 nanos。由于上面提到的 Timestamp 类和 java.util.Date 类之间的差异,建议代码不要将 Timestamp 值一般视为 java.util.Date 的实例。
解决方法是使用TypeDef。这篇文章讨论了这个问题和解决方法。那里使用的代码对您来说已经足够好了。