組み込みの 基本的なマッピング型 は大まかに以下のように分けられます。
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
バイト配列は、適切な 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 の型に対する型マッピング。 Hibernate は不変な Java の型に対しては最適化を行い、アプリケーションはそれを不変オブジェクトとして扱います。例えば imm_timestamp としてマップしたインスタンスに対して、 Date.setTime() を呼び出してはなりません。プロパティの値を変更しその変更を永続化するためには、アプリケーションはプロパティに対して新しい (同一でない) オブジェクトを割り当てなければなりません。
エンティティとコレクションのユニークな識別子は、 binary 、 blob 、 clob を除く、どんな基本型でも構いません。(複合識別子でも構いません。以下を見てください。)
基本的な値型には、 org.hibernate.Hibernate で定義された Type 定数がそれぞれあります。例えば、 Hibernate.STRING は string 型を表現しています。