hibernate文档包含以下信息 @Temporal 注解: 在普通的javaapi中,时间的时间精度没有定义。在处理时态数据时,可能需要描述数据库中预期的精度。时态数据可以具有日期、时间或时间戳精度(即实际日期、仅时间或两者)。使用@temporal注解对其进行微调。 是什么 temporal precision of time is not defined 什么意思?是什么 temporal 数据及其精度?它如何微调?
@Temporal(TemporalType.DATE) // insert date
@Temporal(TemporalType.TIME) // insert time
@Temporal(TemporalType.TIMESTAMP) // insert both time and date.
7条答案
按热度按时间km0tfn4u1#
必须为类型为的永久字段或属性指定此注解
java.util.Date
以及java.util.Calendar
. 只能为这些类型的字段或属性指定。这个
Temporal
注解可与Basic
注解Id
注解,或ElementCollection
注解(当元素集合值是这种时态类型时)。在普通的javaapi中,时间的时间精度没有定义。在处理时态数据时,可能需要描述数据库中预期的精度。时态数据可以具有日期、时间或时间戳精度(即,实际日期、仅时间或两者)。使用
@Temporal
对它进行微调。时态数据是与时间有关的数据。例如,在内容管理系统中,文章的创建日期和最后更新日期是时态数据。在某些情况下,时态数据需要精确性,您希望存储精确的日期/时间或两者兼而有之(
TIMESTAMP
)在数据库表中。在核心javaapi中没有指定时间精度。
@Temporal
是一个JPA
在时间戳和java.util.Date
. 它也会转化time-stamp
变成时间。例如,在下面的片段中,@Temporal(TemporalType.DATE)
删除时间值,只保留日期。根据javadocs,
注解,以便在查询方法参数上声明适当的{@code temporaltype}。请注意,此注解只能用于{@link date}类型的参数(默认值)
TemporalType.DATE
[以上信息来自各种渠道]5n0oy7gb2#
@Temporal
是一个jpa注解,可用于在数据库表中存储以下列项之一:日期(
java.sql.Date
)时间(
java.sql.Time
)时间戳(
java.sql.Timestamp
)通常当我们宣布
Date
字段并尝试存储它。它将作为时间戳存储在数据库中。
上面的代码将存储值看起来像08-07-17 04:33:35.870000000pm
如果我们只想在数据库中存储日期,
我们可以使用/定义
TemporalType
.这次,它将08-07-17存储在数据库中
还有其他一些属性
@Temporal
可根据需要使用。tvokkenx3#
时态类型是可以在持久状态Map中使用的基于时间的类型集。
支持的时态类型列表包括
java.sql
类型java.sql.Date
,java.sql.Time
,和java.sql.Timestamp
,它包括java.util
类型java.util.Date
以及java.util.Calendar
.这个
java.sql
类型完全没有麻烦。它们的行为就像任何其他简单的Map类型,不需要任何特殊的考虑。两个
java.util
但是,类型需要额外的元数据来指示哪些是jdbcjava.sql
与jdbc驱动程序通信时要使用的类型。这是通过用@Temporal
注解并将jdbc类型指定为TemporalType
枚举类型。有三个枚举值date、time和timestamp来表示每个
java.sql
类型。eivgtgni4#
用这个
gv8xihay5#
如果您正在寻找简短的答案:
在使用java.util.date的情况下,java实际上不知道如何与sql类型直接相关。这是什么时候
@Temporal
开始发挥作用。它用于指定所需的sql类型。来源:baeldung
68bkxrlz6#
我使用Hibernate5.2和
@Temporal
不再需要了。java.util.date、sql.date、time.localdate以适当的数据类型作为日期/时间戳存储到数据库中。
gab6jxml7#
我们使用@temporal注解在数据库表中插入日期、时间或两者。使用temporaltype我们可以在int表中插入数据、时间或两者。