Red Hat Training
A Red Hat training course is available for Red Hat JBoss Web Server
6.2.2. 基本的な型
組み込みの 基本的なマッピング型 は大まかに以下のように分けることができます。
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
型を表現しています。