コンテナは以下の処理を実行する場合、CMPのEntity Beanで定義する永続化フィールドのJavaのデータ型に対応するJDBCのAPI(setメソッド、getメソッド)を実行します。
クエリメソッドの実行結果から永続化フィールドの値を取得する場合
(ResultSetのgetメソッドを実行する)
永続化フィールドとクエリメソッドのパラメタをSQLクエリの条件に指定する場合
(PrepareStatementのsetメソッドを実行する)
CMP Entity Beanの作成と更新時に永続化フィールドの値をSQL文に指定する場合
(PrepareStatementのsetメソッドを実行する)
Javaのデータ型とDBMSのSQLデータ型の組み合わせについてはJDBCドライバの仕様に依存しますので、使用するJDBCドライバのマニュアルを参照してください。
Javaのデータ型とコンテナが使用するJDBCドライバのAPIとの対応について以下に説明します。
以下のデータ型の場合は該当するメソッド(setBooleanメソッド、getBooleanメソッドなど)が使用されます。
boolean、java.lang.Boolean
byte、java.lang.Byte
short、java.lang.Short
int、java.lang.Integer
long、java.lang.Long
float、java.lang.Float
double、java.lang.Double
java.lang.String
java.math.BigDecimal
java.sql.Date
java.sql.Time
java.sql.Timestamp
byte[]
ただし、java.lang.String型の永続化フィールドをDBMSのCLOB型にマッピングした場合、setCharacterStreamとgetCharacterStreamメソッドが使用されます。
また、byte[]の場合はsetBinaryStreamとgetBinaryStreamメソッドが使用されます。
プライマリキーカラムに固定長文字列型を使用しないでください。指定した場合、そのキーが参照できないといった問題が発生する可能性があります。
以下のデータ型は標準データ型に変換され、そのデータ型に該当するメソッドが使用されます。
データ型 | 変換する標準データ型 |
---|---|
char、java.lang.Character | java.lang.String |
java.math.BigInteger | java.math.BigDecimal |
java.util.Date | java.sql.TimeStamp |
その他 | byte[] |