-
integer,
long, short, float, double, character, byte, boolean, yes_no, true_false
-
這些類型都對應 Java 的原始類型或者其封裝類,來符合(特定廠商的)SQL 欄位類型。boolean, yes_no 和 true_false 都是
Java 中 boolean 或者 java.lang.Boolean 的另外說法。
-
string
-
從 java.lang.String 到 VARCHAR(或者
Oracle 的 VARCHAR2)的映射。
-
date,
time, timestamp
-
從 java.util.Date 和其子類到 SQL 類型 DATE,TIME 和 TIMESTAMP(或等價類別型)的映射。
-
calendar,
calendar_date
-
從 java.util.Calendar 到 SQL 類型 TIMESTAMP 和 DATE(或等價類別型)的映射。
-
big_decimal,
big_integer
-
從 java.math.BigDecimal 和 java.math.BigInteger 到 NUMERIC(或者
Oracle 的 NUMBER類型)的映射。
-
locale,
timezone, currency
-
從 java.util.Locale,java.util.TimeZone 和 java.util.Currency 到 VARCHAR(或者
Oracle 的 VARCHAR2 類型)的映射。Locale 和 Currency 的執行個體被映射為它們的
ISO 代碼。TimeZone 的執行個體被影射為它的 ID。
-
class
-
從 java.lang.Class 到 VARCHAR(或者
Oracle 的 VARCHAR2 類型)的映射。Class 被映射為它的全限定名。
-
binary
-
把位元組數組(byte arrays)映射為對應的 SQL 二進位類型。
-
text
-
把長 Java 字串映射為 SQL 的 CLOB 或者 TEXT 類型。
-
serializable
-
把可序列化的 Java 類型映射到對應的 SQL 二進位類型。你也可以為一個並非預設為基本類型的可序列化 Java 類或者介面指定 Hibernate 類型 serializable。
-
clob,
blob
-
JDBC 類 java.sql.Clob 和 java.sql.Blob的映射。某些程式可能不適合使用這個類型,因為
blob 和 clob 對象可能在一個事務之外是無法重用的。(而且, 驅動程式對這種類型的支援充滿著補丁和前後矛盾。)
-
imm_date,
imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary
-
一般來說,映射類型被假定為是可變的 Java 類型,只有對不可變 Java 類型,Hibernate 會採取特定的最佳化措施,應用程式會把這些對象作為不可變對象處理。比如,你不應該對作為 imm_timestamp 映射的
Date 執行 Date.setTime()。要改變屬性的值,並且儲存這一改變,應用程式必須對這一屬性重新設定一個新的(不一樣的)對象。
實體及其集合的唯一標識可以是除了 binary、 blob 和 clob 之外的任何基礎類型。(聯合標識也是允許的,後面會說到。)
在 org.hibernate.Hibernate 中,定義了基礎類型對應的 Type 常量。比如,Hibernate.STRING 代表 string 類型。