30.13.4. ユーザータイプマッピング

ユーザータイプマッピングは、org.jboss.ejb.plugins.cmp.jdbc.Mapper インターフェースのインスタンスを指定することで JDBC カラムタイプからカスタム CMP フィールドタイプへのマッピングを可能にします。その定義を次に示します。
public interface Mapper
{
    /**
     * This method is called when CMP field is stored.
     * @param fieldValue - CMP field value
     * @return column value.
     */
    Object toColumnValue(Object fieldValue);    

    /** 
     * This method is called when CMP field is loaded.
     * @param columnValue - loaded column value.
     * @return CMP field value.
     */
    Object toFieldValue(Object columnValue);
}
典型的な使用事例は、整数タイプの、タイプセーフ Java 列挙型インスタンスへのマッピングです。user-type-mappings 要素のコンテンツモデルは、1 つ以上の user-type-mapping 要素から成ります。このコンテンツモデルは図30.20「user-type-mapping コンテンツモデル」に示してあります。
user-type-mapping コンテンツモデル

図30.20 user-type-mapping コンテンツモデル

  • java-type: マッピングにおける CMP フィールドタイプの完全修飾名。
  • mapped-type:マッピングにおけるデータベースタイプの完全修飾名。
  • mapper: java-typemapped-type 間の変換を処理する Mapper インターフェース実装の完全修飾名。