天天看點

hibernate Java 時間和日期類型的 Hibernate 映射基礎知識:如何進行映射?以下情況下必須顯式指定 Hibernate 映射類型

在 Java 中, 代表時間和日期的類型包括: java.util.Date 和 java.util.Calendar. 此外, 在 JDBC API 中還提供了 3 個擴充了 java.util.Date 類的子類: java.sql.Date, java.sql.Time 和 java.sql.Timestamp, 這三個類分别和标準 SQL 類型中的 DATE, TIME 和 TIMESTAMP 類型對應

在标準 SQL 中, DATE 類型表示日期, TIME 類型表示時間, TIMESTAMP 類型表示時間戳, 同時包含日期和時間資訊.

hibernate Java 時間和日期類型的 Hibernate 映射基礎知識:如何進行映射?以下情況下必須顯式指定 Hibernate 映射類型

1.因為java.util.Date是 java.sql.Date, java.sql.Time 和 java.sql.Timestamp的父類,是以java.util.Date可以對應标準sql類型中的DATE,TIME和TIMESTAMP

2.基于1,是以在設定持久化類的Date類型時設定為java.util.Date,因為這個類型可以與hibernate中三種日期類型都對應

3.如何把java.util.Date映射為DATE,TIME,和TIMESTAMP?

可以通過property的type類型進行映射,例如: <property name="date" type="time"> <column name="DATE" /> </property> <property name="date" type="data">       <column name="DATE" /> <property name="date" type="timestamp">

使用 Hibernate 内置映射類型

一個 Java 類型可能對應多個 Hibernate 映射類型. 例如: 如果持久化類的屬性為 java.util.Date 類型, 對應的 Hibernate 映射類型可以是 date, time 或 timestamp. 此時必須根據對應的資料表的字段的 SQL 類型, 來确定 Hibernate 映射類型. 如果字段為 DATE 類型, 那麼 Hibernate 映射類型為 date; 如果字段為 TIME 類型, 那麼 Hibernate

映射類型為 time; 如果字段為 TIMESTATMP 類型, 那麼 Hibernate 映射類型為 timestamp.