Hibernate文档具有以下有关@Temporal
注释的信息:
在纯Java API中,未定义时间的时间精度。处理时态数据时,您可能需要描述数据库中的预期精度。时间数据可以具有DATE,TIME或TIMESTAMP精度(即实际日期,仅时间或两者兼有)。使用@Temporal批注进行微调。
什么temporal precision of time is not defined
意思 什么是temporal
数据及其精度?如何调整?
Hibernate文档具有以下有关@Temporal
注释的信息:
在纯Java API中,未定义时间的时间精度。处理时态数据时,您可能需要描述数据库中的预期精度。时间数据可以具有DATE,TIME或TIMESTAMP精度(即实际日期,仅时间或两者兼有)。使用@Temporal批注进行微调。
什么temporal precision of time is not defined
意思 什么是temporal
数据及其精度?如何调整?
Answers:
此标注必须为持久化字段或类型的属性来指定java.util.Date
和java.util.Calendar
。只能为这些类型的字段或属性指定。
该Temporal
注释可与结合使用Basic
的注释,所述Id
注释,或ElementCollection
注释(当元素集合值是这样一个时间类型。
在纯Java API中,未定义时间的时间精度。处理时态数据时,您可能需要描述数据库中的预期精度。时间数据可以具有DATE,TIME或TIMESTAMP精度(即,实际日期,仅时间或两者兼有)。使用@Temporal
注释进行微调。
时间数据是与时间有关的数据。例如,在内容管理系统中,文章的创建日期和最后更新日期是时间数据。在某些情况下,时态数据需要精度,并且您想TIMESTAMP
在数据库表中存储精确的日期/时间或两者()。
核心Java API中未指定时间精度。@Temporal
是JPA
在timestamp和之间来回转换的注释java.util.Date
。它还会转换time-stamp
为时间。例如,在下面的代码段中,@Temporal(TemporalType.DATE)
删除时间值,仅保留date。
@Temporal(TemporalType.DATE)
private java.util.Date creationDate;
根据javadocs,
用于在查询方法参数上声明适当的{@code TemporalType}的注释。请注意,默认情况下,此注释只能用于类型为{@link Date}的参数
TemporalType.DATE
[以上信息来自各种来源]
yyyy-MM-dd
02/10/2017
并且想要将其转换为2017-10-02
或2017/10/02
@Temporal
是一个JPA批注,可用于存储以下列项目中的数据库表:
java.sql.Date
)java.sql.Time
)java.sql.Timestamp
)通常,当我们Date
在类中声明一个字段并尝试存储它时。
它将作为TIMESTAMP存储在数据库中。
@Temporal
private Date joinedDate;
上面的代码将存储值,看起来像08-07-17 04:33:35.870000000 PM
如果我们只想将DATE存储在数据库中,则
可以使用/ define TemporalType
。
@Temporal(TemporalType.DATE)
private Date joinedDate;
这次,它将在数据库中存储08-07-17
还有一些其他属性以及@Temporal
可以根据要求使用的属性。
时间类型是可以在持久状态映射中使用的基于时间的类型集。
支持时间类型的列表包括三个java.sql
类型java.sql.Date
,java.sql.Time
以及java.sql.Timestamp
,它包括两种java.util
类型java.util.Date
和java.util.Calendar
。
这些java.sql
类型完全没有麻烦。它们的行为就像其他任何简单的映射类型一样,不需要任何特殊考虑。
java.util
但是,这两种类型需要其他元数据,以指示java.sql
在与JDBC驱动程序进行通信时使用哪种JDBC 类型。这是通过用注释对它们进行@Temporal
注释并将JDBC类型指定为TemporalType
枚举类型的值来完成的。
DATE,TIME和TIMESTAMP的三个枚举值代表每种java.sql
类型。