如果我们想将@Temporal
存储在Hibernate中,是否有必要提供Date
?
@Column(name = "Date_Open")
@Temporal(TemporalType.TIMESTAMP)
public Date getDateOpen() {
return this.dateOpen;
}
如果我们不使用TemporalType
注释,那么默认@Temporal
会是什么?
如果没有给出@Temporal
,那么默认值是什么?如果TemporalType.Timestamp
给出了什么是好处?
答案 0 :(得分:0)
@Temporal没有必要使用Date字段,默认情况下hibernate使用Timestamp保存日期,我们可以使用@Temporal注释来指定hibernate将保存日期,时间或时间戳的精度。在普通Java API中,未定义时间的时间精度。处理时态数据时,您可能希望描述数据库中的预期精度。 以下类型用于指示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.
这可能表示实际的日期表示形式 数据库未定义,并确保最好指定它 直接