30.13.3. マッピング

type-mapping とは、マッピングする Java クラスタイプとデータベースタイプ間のマッピングセットのことです。タイプマッピングはmapping 要素により定義されます。このコンテンツモデルについては、図30.19「jbosscmp-jdbc マッピング要素のコンテンツモデル」で紹介しています。
jbosscmp-jdbc マッピング要素のコンテンツモデル

図30.19 jbosscmp-jdbc マッピング要素のコンテンツモデル

JBoss は各タイプのマッピングを見つけられない場合、オブジェクトをシリアル化し、java.lang.Object マッピングを使用します。次に、マッピング要素の 3 つの子要素について説明します。
  • java-type: この必須の要素は、Java クラスの完全修飾名を渡しマッピングします。クラスが java.lang.Short などのプリミティブラッパークラスである場合、マッピングもプリミティブタイプに適用します。
  • jdbc-type: この必須の要素により、JDBC PreparedStatement でのパラメーターの設定時または JDBC ResultSetからのデータのロード時に使用する JDBC タイプが与えられます。有効なタイプは java.sql.Typesに定義されます。
  • sql-type: この必須の要素により、create table ステートメントで使用する SQL タイプが与えられます。データベースベンダーのみが有効なタイプに制限を加えます。
  • param-setter: この任意の要素は、このマッピングの JDBCParameterSetter 実装の完全修飾名を指定します。
  • result-reader: この任意の要素は、このマッピングに対し JDBCResultSetReader 実装の完全修飾名を指定します。
Oracle9i での mapping 要素の例を次に示します。
<jbosscmp-jdbc>
    <type-mappings>
        <type-mapping>
            <name>Oracle9i</name>
            <!--...-->
            <mapping>
                <java-type>java.lang.Short</java-type>
                <jdbc-type>NUMERIC</jdbc-type>
                <sql-type>NUMBER(5)</sql-type>
            </mapping>
        </type-mapping>
    </type-mappings>
</jbosscmp-jdbc>