如果要将@Temporal
存储在Hibernate中,是否必须提供Date
?
@Column(name = "Date_Open")
@Temporal(TemporalType.TIMESTAMP)
public Date getDateOpen() {
return this.dateOpen;
}
如果我们不使用
TemporalType
注释,默认的@Temporal
是什么?如果未提供
@Temporal
,则默认值是什么?如果通过TemporalType.Timestamp
给出,默认值是什么? 最佳答案
@Temporal不必与Date字段一起使用,默认情况下,hibernate使用Timestamp保存日期。我们可以使用@Temporal批注指定hibernate保存日期,时间或时间戳的精度。在纯Java API中,未定义时间的时间精度。处理时间数据时,您可能需要描述数据库中的预期精度。
following Type用于指示java.util.Date的特定映射
或java.util.Calenda。
TemporalType.DATE: maps the date as java.sql.Date.
TemporalType.TIME: maps the date as java.sql.Time.
TemporalType.TIMESTAMP: maps the date as java.sql.Timestamp.
Here是有关@temporal的很好的解释
同样关于日期字段中缺少@Temporal注释:
在纯Java API中,未定义时间的时间精度。
处理时间数据时,您可能需要描述
数据库的预期精度。时间数据可以具有DATE,TIME或
TIMESTAMP精度(即实际日期,仅时间或两者兼有)。采用
@Temporal批注进行微调。
From 2.2.2.1. Declaring basic property mappings.
这可能表明实际日期表示在
未定义数据库,请确保最好指定它
直。