Hibernate type 與java 和 數據庫類型對應


Hibernate type 屬性

 

內置的 basic mapping types 可以大致地分類為:

 

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

Maps long Java strings to a SQL LONGVARCHAR or TEXT type.

 

image

Maps long byte arrays to a SQL LONGVARBINARY.

 

serializable

把可序列化的 Java 類型映射到對應的 SQL 二進制類型。你也可以為一個並非默認為基本類型的可序列化 Java 類或者接口指定 Hibernate 類型 serializable。

 

clob, blob

JDBC 類 java.sql.Clob 和 java.sql.Blob的映射。某些程序可能不適合使用這個類型,因為 blob 和 clob 對象可能在一個事務之外是無法重用的。(而且, 驅動程序對這種類型的支持充滿着補丁和前后矛盾。)

 

materialized_clob

Maps long Java strings to a SQL CLOB type. When read, the CLOB value is immediately materialized into a Java string. Some drivers require the CLOB value to be read within a transaction. Once materialized, the Java string is available outside of the transaction.

 

materialized_blob

Maps long Java byte arrays to a SQL BLOB type. When read, the BLOB value is immediately materialized into a byte array. Some drivers require the BLOB value to be read within a transaction. Once materialized, the byte array is available outside of the transaction.

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM