ヘッダーをスキップ

トランスフォーメーション・マッピングの使用

トランスフォーメーション・マッピングは、Javaで表されている値とデータベースで表されている値の特別な変換に使用します。


ヒント: 複数のフィールドを1つの属性にマップする場合のみトランスフォーメーション・マッピングを使用します。トランスフォーメーション・マッピングは複雑なため、ほとんどの場合、フィールドへの直接マッピングのget/setメソッドを使用して変換を実行した方がより簡単です。

複数のフィールドの値を使用してオブジェクトを作成するには、多くの場合、トランスフォーメーション・マッピングが適切です。このタイプのマッピングでは、データベースからオブジェクトを読み取る際に起動される、属性変換メソッドが必要です。このメソッドには、DatabaseRowのインスタンスであるパラメータが1つ以上必要です。属性変換メソッドでは、get()メッセージをDatabaseRowに送信して、特定の列の値を取得できます。属性変換メソッドでは、2つ目のパラメータがSessionのインスタンスである場合、そのパラメータを指定できます。Sessionは、データベースに対する問合せを実行し、変換に必要な追加の値を取得します。メソッドにより、属性に格納される値が返されます

トランスフォーメーション・マッピングでは、オブジェクトが保存される際にデータベースに書き込まれる、各フィールドに対するフィールド変換メソッドも必要です。変換メソッドは、各フィールドをメソッドに関連付けるディクショナリで指定されます。メソッドにより、フィールドに格納される値が返されます。

図5-14にトランスフォーメーション・マッピングが示されています。B_DATEフィールドおよびB_TIMEフィールドの値は、birthDate属性に格納されるjava.util.Dateの作成に使用されます。

図5-14 トランスフォーメーション・マッピング

トランスフォーメーション・マッピング


関連トピック

TopLinkマッピング・タイプについて
直接マッピングの使用

 

Javaオブジェクトのトランスフォーメーション・マッピングの作成
CMP EJBのトランスフォーメーション・マッピングの作成