【发布时间】:2014-08-15 20:26:45
【问题描述】:
Hibernate 文档包含以下@Temporal 注释的信息:
在普通的 Java API 中,没有定义时间的时间精度。 在处理时态数据时,您可能想要描述 数据库中的预期精度。时态数据可以有 DATE、TIME 或 TIMESTAMP 精度(即实际日期、仅时间或两者兼有)。采用 @Temporal 注释来微调它。
temporal precision of time is not defined 是什么意思?什么是temporal 数据及其精度?它是如何微调的?
【问题讨论】:
-
如果你使用 Calendar 作为你的 Entity 属性,那么在纯 java 中它会打印很多信息,例如,当你想将它保存到数据库时,这些信息是不必要的。在这种情况下,你可以拥有一些东西就像您的实体中的 @Temporal(TemporalType.TIMESTAMP)Calendar 日历一样,通过在您的 Calendar 属性上更改为 @Temporal(TemporalType.DATE) 或 @Temporal(TemporalType.TIME) 将时间戳存储到您的数据库或只是日期或只是时间。跨度>
-
从 Hibernate 5 开始,您不需要也不应该在新代码中使用
@Temporal。它用于注释Date和Calendar字段,但这些类设计不佳且早已过时,而是使用java.time, the modern Java date and time API 中的类。它们具有内置的预期精度,您无需对它们使用该注释。