1007--Java 时间和日期类型的 Hibernate 映射

来源:互联网 发布:大数据学习 编辑:程序博客网 时间:2024/06/05 20:01
Java ,代表时间和日期的类型包括:java.util.Datejava.util.Calendar.
   此外,JDBC API中还提供了3个扩展了java.util.Date类的子类:java.sql.Date,java.sql.Timejava.sql.Timestamp,
   这三个类分别和标准 SQL 类型中的 DATE,TIME TIMESTAMP类型对应
在标准 SQL , DATE类型表示日期, TIME类型表示时间,TIMESTAMP类型表示时间戳,同时包含日期和时间信息.
 
 
以下情况下必须显式指定 Hibernate映射类型
一个 Java 类型可能对应多个Hibernate映射类型.
 例如:如果持久化类的属性为java.util.Date类型,对应的Hibernate 映射类型可以是date, time timestamp.
此时必须根据对应的数据表的字段的 SQL类型,来确定Hibernate 映射类型.
 如果字段为 DATE类型,那么Hibernate 映射类型为date;
 如果字段为 TIME类型,那么Hibernate 映射类型为time;
如果字段为 TIMESTATMP 类型, 那么Hibernate映射类型为timestamp.
 

2). 如何进行映射 ?

I. 因为 java.util.Date 是 java.sql.Date, java.sql.Time 和 java.sql.Timestamp 的父类, 所以 java.util.Date
可以对应标准 SQL 类型中的 DATE, TIME 和 TIMESTAMP

II. 基于 I, 所以在设置持久化类的 Date 类型是, 设置为 java.util.Date.

III. 如何把 java.util.Date 映射为 DATE, TIME 和 TIMESTAMP ?

可以通过 property 的 type 属性来进行映射:

例如:

<property name="date" type="timestamp">
    <column name="DATE" />
</property>

<property name="date" type="data">
    <column name="DATE" />
</property>

<property name="date" type="time">
    <column name="DATE" />
</property>

其中 timestamp, date, time 既不是 Java 类型, 也不是标准 SQL 类型, 而是 hibernate 映射类型

0 0
原创粉丝点击