Hibernate文档包含以下@Temporal
注释的信息:
在普通的JavaAPI中,时间的时间精度没有定义。在处理时态数据时,可能需要描述数据库中的预期精度。时态数据可以具有日期、时间或时间戳精度(即实际日期、仅时间或两者)。使用@Temporal注释对其进行微调。
时间精度未定义
是什么意思?什么是时间
数据及其精度?它如何微调?
时态类型是可以在持久状态映射中使用的基于时间的类型集。
支持的时态类型列表包括三种java。sql
typesjava。sql。日期
,java。sql。时间和java。sql。时间戳
,它包括两个java。util
typesjava。util。日期
和java。util。日历
。
java。sql
类型完全没有麻烦。它们的行为与任何其他简单映射类型一样,不需要任何特殊考虑。
两个java。然而,util
类型需要额外的元数据来指示哪个JDBCjava。与JDBC驱动程序通信时要使用的sql
类型。这是通过使用@Temporal
注释对它们进行注释,并将JDBC类型指定为TemporalType
枚举类型的值来实现的。
有三个枚举值DATE、TIME和TIMESTAMP来代表java中的每一个。sql
类型。
@Temporal
是一个JPA注释,可用于在数据库表中存储以下列项:
java.sql.DATE
)java.sql.TIME
)java.sql.TIMESTAMP
)通常,当我们在类中声明一个Date
字段并尝试存储它时
它将作为时间戳存储在数据库中。
@Temporal
private Date joinedDate;
上面的代码将存储的值看起来像08-07-17 04:33:35.870000000 PM
如果我们只想在数据库中存储日期,
我们可以使用/defineTemporalType
。
@Temporal(TemporalType.DATE)
private Date joinedDate;
这一次,它会将08-07-17存储在数据库中
还有一些其他属性以及可根据需求使用的@Temporal
。
必须为java类型的持久字段或属性指定此注释。util。日期
和java。util。日历
。只能为这些类型的字段或属性指定。
临时
注释可以与Basic
注释、Id
注释或ElementCollection
注释结合使用(当元素集合值是这种时间类型时。
在普通的JavaAPI中,时间的时间精度没有定义。在处理时态数据时,可能需要描述数据库中的预期精度。时态数据可以具有日期、时间或时间戳精度(即,实际日期、仅时间或两者)。使用@Temporal
注释对其进行微调。
时间数据是与时间相关的数据。例如,在内容管理系统中,文章的创建日期和最后更新日期是时间数据。在某些情况下,时态数据需要精确,您希望在数据库表中存储精确的日期/时间或两者(时间戳
)。
在核心Java API中没有指定时间精度@Temporal
是一个JPA
注释,它在时间戳和java之间来回转换。util。日期
。它还将时间戳
转换为时间。例如,在下面的代码片段中,@Temporal(TemporalType.DATE)
删除时间值,只保留日期。
@Temporal(TemporalType.DATE)
private java.util.Date creationDate;
根据javadocs,
注释,以在查询方法参数上声明适当的{@code TemporalType}。请注意,此注释只能用于{@link Date}类型的参数,默认值为TemporalType。日期
[以上信息来自不同来源]
问题内容: Hibernate文档具有以下有关注释的信息: 在纯Java API中,未定义时间的时间精度。处理时态数据时,您可能需要描述数据库中的预期精度。时间数据可以具有DATE,TIME或TIMESTAMP精度(即实际日期,仅时间或两者兼有)。使用@Temporal批注进行微调。 什么意思 什么是数据及其精度?如何调整? 问题答案: 必须为类型为和的持久字段或属性指定此注释。只能为这些类型的字
问题内容: 我有2个实体,如“父对子”和“一对多”关系 因此,这里 @LazyCollection(LazyCollectionOption.EXTRA)的 用途是什么,它将何时出现在图片中,例如对哪个带有子列表的操作有好处? 问题答案: 为了给您一个提示,主要是出于性能方面的考虑,您可以开始阅读以下链接: 二级缓存 休眠文档
问题内容: 如果我们使用 代替 如果我们使用不带注释的日期列属性,会有任何副作用吗? 问题答案: 我设法找到的只有一部分文档: 在纯Java API中, 未定义时间 的 时间精度 。处理时态数据时,您可能需要描述数据库中的预期精度。时间数据可以具有DATE,TIME或TIMESTAMP精度(即实际日期,仅时间或两者兼有)。使用@Temporal批注进行微调。 从2.2.2.1开始。声明基本属性映射
问题内容: 使用这些批注的重点是要独立于数据库提供程序,而不是重新生成JAR存档。 如果我坚持不懈,那么我首先看不到使用hibernate的意义。如果确实决定切换到其他数据库提供程序,则必须修改类中的注释,然后重新编译应用程序。 问题答案: @Table 批注:@Table批注允许您指定用于将实体保留在数据库中的表的详细信息。 @Table批注提供了四个属性,使您可以覆盖表的名称,目录和架构,并对
在我的项目代码库中,我看到许多地方使用了生成的注释。当我通读这些文件时,它说明了以下内容。 Lombok最终会自动将此注释添加到所有生成的构造函数、方法、字段和类型中。 根据文档,Lombok会自动为生成的代码添加注释。除此之外,不会生成任何像或这样的代码。我看不出使用它的理由。 我错过什么了吗?
问题内容: 我有2个实体作为“一对多”的父子关系 因此,这里 @LazyCollection(LazyCollectionOption.EXTRA)的 用途是什么,它将何时出现在图片中,例如对哪个带有子列表的操作有好处? 问题答案: 为了给您一个提示,主要是出于性能方面的考虑,您可以开始阅读以下链接: 二级缓存 hibernate文档