gpt4 book ai didi

java - 如果我们想在 Hibernate 中存储日期,TemporalType = Timestamp 是否必要?

转载 作者:行者123 更新时间:2023-12-02 13:25:48 26 4
gpt4 key购买 nike

如果我们想在Hibernate中存储Date,是否需要提供@Temporal

@Column(name = "Date_Open")
@Temporal(TemporalType.TIMESTAMP)
public Date getDateOpen() {
return this.dateOpen;
}

如果我们不使用@Temporal注释,默认的TemporalType会是什么?

如果未给出@Temporal,默认值是什么?如果与TemporalType.Timestamp一起给出,有什么好处?

最佳答案

@Temporal 不需要与 Date 一起使用,默认情况下 hibernate 会用 Timestamp 保存日期,我们可以使用 @Temporal 注解来指定 hibernate 保存日期、时间或时间戳的精度。在普通 Java API 中,未定义时间的时间精度。在处理时态数据时,您可能希望描述数据库中的预期精度。下面的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 注释:

In plain Java APIs, the temporal precision of time is not defined. When dealing with temporal data you might want to describe the expected precision in database. Temporal data can have DATE, TIME, or TIMESTAMP precision (ie the actual date, only the time, or both). Use the @Temporal annotation to fine tune that.

From 2.2.2.1. Declaring basic property mappings.

This might indicate that the actual date representation in the database is not defined and to be sure it is better to specify it directly.

关于java - 如果我们想在 Hibernate 中存储日期,TemporalType = Timestamp 是否必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43383514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com