Sun Java System Application Server に配備する場合、EJB モジュールの CMP マッピングは、そのモジュールの src/conf ディレクトリ内の sun-cmp-mappings.xml 記述子ファイルで指定されています。XML エディタを使用すると、sun-cmp-mappings.xml 内の CMP マッピングを構成できます。
次のような状況では、エンティティー Bean の CMP マッピングの変更が必要になることがあります。
sun-cmp-mappings.xml の CMP マッピングを編集する
sun-cmp-mappings.xml で Beans のマッピングを行う場合は、Bean ごとにスキーマおよび主表を指定します。各 Bean は、単一のデータベーススキーマ内の少なくとも 1 つの表にマッピングする必要があります。Bean を二次表にマッピングすることもできます。コンテナ管理による関係で関連付けられたすべての Bean は、同じスキーマ内の表にマッピングする必要があります。
二次表は、1 つ以上の列によって主表へ関連付けられている必要があり、それらの列の関連する行には、どちらの表にも同じ値が入っている必要があります。このリンクを参照キーと呼びます。通常、このキーは主表内の外部キーです。
CMP 関係の詳細は、次の項目を参照してください。
CMP Beans をデータベースへマッピングすると、各エンティティー Bean の CMP フィールドは主表または二次表のいずれかの列にマッピングされます。CMP フィールドは複数のデータベース列にマッピングすることもできます。
1 つのフィールドを複数の列にマップした場合は、すべての列が、最初にリストされた列の値で更新されます。したがって、いずれか 1 つの列の値が EJB アプリケーションの外部で変更された場合でも、その値が読み取られるのは、変更が最初の列に加えられた場合だけです。データベースに値を書き込むと、ほかの列に加えられた競合する変更が上書きされます。
複数のデータベース表の間に外部キー関係がある場合、通常、それらの関係は、表にマッピングされた CMP Bean の中に保存します。マッピングされた CMP Bean 間の関係がデータベースにどのように格納されるかは、コンテナ管理による関係 (CMR) によって決まります。CMR は、外部キーが表と表の間のナビゲーションを可能にするのと同じように、Bean と Bean の間のナビゲーションを可能にします。
すべての J2EE モジュールタイプの構成可能なプロパティーを示した完全なリストについては、『Sun Java System Application Server Developer's Guide』の付録 A「Deployment Descriptor Files」を参照してください。
CMP エンティティー Bean 仕様についての詳細な説明は、『Enterprise JavaBeans Specification, v2.1』を参照してください。