我有一个实体类,它代表从 MySQL 带来的对象。其中一个字段是我通过 Hibernate 映射的 MySQL DateTime 字段
@Temporal(TemporalType.DATE)
private Date effdate;
但是,如果该日期恰好在数据库中为空,我想在 setter 方法中将其设置为当前日期。据我了解,Hibernate 不支持默认值,并且使用columnDefinition子句默认字段会将实现与供应商联系起来。
当该字段在 MySQL 中正确填充时,它看起来像第二个输出行。当我默认它时,它看起来像第一个。两个日期字段不应该看起来一样吗?如果它最终不会成为问题,我不会担心,但我想了解 Date 对象如何以不同的方式出现。我知道SimpleDateFormat,但不确定它是否在这里发挥作用,因为两者都只是日期对象。@Temporal 注释对它有什么作用吗?
Tue Apr 24 14:34:10 EDT 2012 <- my default
2012-04-24 00:00:00.0 <- from MySQL
设置方法
public void setEffdate(Date effdate) {
// TODO if effdate is null use "d"
Date d = new Date();
this.effdate = effdate;
System.out.println(d);
System.out.println(this.effdate + "\n");