-
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
類型。