ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

3.8.4 Entityで定義するJavaのデータ型とDBMSのSQLデータ型との対応

Interstage永続性プロバイダは以下の処理を実行する場合、Entityの永続化フィールドのデータ型に対応するJDBCのAPI(setメソッド、getメソッド)を実行します。

Javaのデータ型とDBMSのSQLデータ型の組み合わせについては、JDBCドライバの仕様に依存するため、使用するJDBCドライバのマニュアルを参照してください。

Javaのデータ型とInterstage永続性プロバイダが使用するJDBCドライバのAPIとの対応について、以下に説明します。

注意

SQLデータ型がCHAR型の場合の注意事項

クエリメソッドの実行結果に、CHAR型のデータ(ResultSetMetaDataのgetColumnTypeメソッドの返却値がjava.sql.Types.CHARと一致するカラムから取得した値)が含まれる場合、文字列末尾の「\u0020」以下のコード値を持つ連続した文字がすべて空白とみなされ取り除かれた後、Entityへセットされます。

標準データ型

以下のデータ型の場合は、JDBCのAPI(setメソッド、getメソッド)が使用されます。

その他のデータ型

以下のデータ型は標準データ型に変換され、JDBCのAPI(setメソッド、getメソッド)が使用されます。

データ型

変換する標準データ型

char、java.lang.Character

java.lang.String

char[]、java.lang.Character[]

java.lang.String

java.math.BigInteger

java.math.BigDecimal

java.util.Date

定義したTemporalType

java.util.Calendar

定義したTemporalType

enum(ordinal)

java.lang.Integer

enum(String)

java.lang.String

その他

byte[]


注意

Interstage永続性プロバイダは、Entityに格納されているデータに変更がない場合はデータベースにUPDATE文を発行しません。ユーザアプリケーションからEntityの永続化フィールドに対して変更があったかどうかを確認するために、Entityの検索またはマージ時にデータのコピーを作成し、フラッシュまたはトランザクションのコミット時にデータを比較します。byte[]に変換される「その他」のデータ型の場合は、直列化処理後のbyte配列を比較します。そのため、直列化と直列化復元処理によりbyte配列が変わるデータ型(java.util.Hashtable、java.util.Propertiesなど)を使用すると、検索だけ行ったトランザクションでもUPDATE文が発行される場合があります。
その他の永続性プロバイダを使用する場合は、その永続性プロバイダのマニュアルを参照してください。