在Hibernate中使用@Temporal注解是什么?
Hibernate文档具有以下关于@Temporal
注释的信息:
在普通的Java API中,没有定义时间的时间精度。 处理时态数据时,可能需要描述数据库中的期望精度。 时间数据可以具有DATE,TIME或TIMESTAMP精度(即实际date,只有时间或两者)。 使用@Temporal注释来微调。
temporal precision of time is not defined
是什么意思? 什么是时temporal
数据及其精度? 它是如何微调的?
必须为持久性字段或java.util.Date
和java.util.Calendar
types的属性指定此注释。 它只能被指定为这些types的字段或属性。
Temporal
注释可以与Basic
注释, Id
注释或者ElementCollection
注解结合使用(当元素集合值具有这种时间types时。
在普通的Java API中,没有定义时间的时间精度。 在处理时态数据时,可能需要描述数据库中预期的精度。 时间数据可以具有DATE,TIME或TIMESTAMP精度(即,实际date,仅时间,或两者)。 使用@Temporal
注释来微调。
时间数据是与时间有关的数据。 例如,在内容pipe理系统中,文章的创builddate和最后更新date是时间数据。 在某些情况下,时态数据需要精确性,而且您希望将精确的date/时间或两者都存储( TIMESTAMP
)到数据库表中。
核心Java API中没有指定时间精度。 @Temporal
是一个在时间戳和java.util.Date
之间来回转换的JPA
注释。 它也将time-stamp
转换成时间。 例如,在下面的代码片段中, @Temporal(TemporalType.DATE)
会删除时间值,只保留date 。
@Temporal(TemporalType.DATE) private java.util.Date creationDate;
根据javadocs,
注释在查询方法参数上声明一个适当的{TemporalType}。 请注意,此注释只能用于具有默认
TemporalType.DATE
{@link Date}types的参数
[上述信息从各种来源收集]
时态types是可以在持久状态映射中使用的一组基于时间的types。
受支持的时态types列表包括三个java.sql
typesjava.sql.Date
, java.sql.Time
和java.sql.Timestamp
,它包括两个java.util
typesjava.util.Date
和java.util.Calendar
。 java.util.Calendar
。
java.sql
types完全没有问题。 它们就像任何其他简单的映射types一样,不需要任何特殊的考虑。
这两个java.util
types需要额外的元数据,但是要指示在与JDBC驱动程序通信时要使用哪个JDBC java.sql
types。 这是通过使用@Temporal
注释来注释它们并将JDBCtypes指定为TemporalType
枚举types的值来完成的。
DATE,TIME和TIMESTAMP有三个枚举值来表示每个java.sql
types。
@Temporal是一个JPA注释,它可以用来在数据库表中只存储TIME,DATE或TIMESTAMP。 通常当我们在类中声明Date字段并尝试存储它时。 它会将时间戳存储在数据库中。
私人datejoinedDate;
存储的值看起来像08-07-17 04:33:35.870000000 PM
如果我们只想在数据库中存储Date,我们可以使用这个注释和DATE属性。
@Temporal(TemporalType.DATE)
私人datejoinedDate;
这一次,它将在数据库中存储08-07-17
还有一些属于@Temporal的属性,可以根据需要使用。
用这个
@Temporal(TemporalType.TIMESTAMP) @Column(name="create_date") private Calendar createDate; public Calendar getCreateDate() { return createDate; } public void setCreateDate(Calendar createDate) { this.createDate = createDate; }
- 没有匹配的types的bean …发现依赖
- Hibernate Criteria使用FetchType.EAGER多次返回子项
- Spring 3.1inheritance的Hibernate 4exception
- load()vs get()在Hibernate中的优点是什么?
- org.hibernate.HibernateException:当“hibernate.dialect”未设置时,对DialectResolutionInfo的访问不能为null
- hibernate:如何解决“从X到Y更改实例的标识符”?
- 用Hibernate + Spring进行caching – 一些问题!
- Hibernate的两个configuration文件的目的是什么?
- 在Hibernate中persist()vs save()的优点是什么?