CMP 1.x 用の関係の作成

CMP 1.x 用の関係は、EJB 1.x 仕様の規格には入っていません。 WebSphere® Application Server の拡張機能が、1.x の関係を処理するために作成されています。

EJB デプロイメント記述子エディターを使用して、 対象の EJB プロジェクトまたはモジュール内の 2 つの Enterprise Bean の間の関係を指定します。 EJB デプロイメント記述子エディターは、適切なファインダー・メソッドを生成して、 作成するすべての関係をサポートします。

ある CMP から別の CMP への関係を定義すると、 参照 CMP Bean にあるキー・フィールドを基にしたエクストラ CMP フィールドが、下方参照役割の所有 CMP Bean に追加されます (所有 CMP Bean の「外部キー」チェック・ボックスが選択されます)。

例えば、 会社が従業員に対して 1..N 関係を持っていて、それぞれに会社と従業員 (複数) の役割があるとします。会社役割は下方で、Company CMP Bean には "companyID" および "companyName" という名前のキー・フィールドがあります。従業員 Bean に自動的に追加される CMP フィールドは "company_companyID" および "company_companyName" です。これらのフィールドは、 「従業員」関係役割をサポートするために追加されたフィールドであるので、EJB エディターに隠れています。関係がまだ存在している間にこれらの CMP フィールドが ejb-jar.xml ファイルから除去された場合は、問題が発生します。

このほかの関係の例が、Rational® Application Developer に付属して出荷される AutoWorld 実例プロジェクトの中にあります。次の図は、車庫と車両の関係が、EJB デプロイメント記述子エディターの「関係」ページに、 どのように表示されるかを示しています。複数の車両が 1 つの車庫に収容できるので、 多重度は多数 (0..*) 対 1 (0..1) の関係を示します。


「関係の追加」ウィザードの画面取り

作成ウィザードは関係の UML ビューを表示し、フィールドは、UML モデルを基にして変更されます。関係が作成されると、 これらの 2 つの Bean 間のリンクを保守する際のランタイムをサポートするために、追加クラスが作成されます。また、追加メソッドが生成され、両方の Enterprise Bean の ホーム、リモート、および Bean のそれぞれのクラスに入れられます。生成されたリンク・クラスをコンパイルする必要があるために最初に関係が作成されたときに、EJB デプロイメント記述子エディターにコンパイル・エラーが発生します。これらのファイルには機械語コーディングがありますが、 ホーム、リモート、および Bean の各クラス内の変更はまだコンパイルされていません。 コンパイルは、プロジェクトが作成されるまでは行われません。 通常、これは、EJB デプロイメント記述子エディターが保管されるときに自動的に行われます。したがって、エディターが保管されるまで、コンパイル・エラーを見ることはありません。

注: 1 つ以上の CMP Bean の間に関係が存在する場合、1 つの CMP のキーの形状を変更すると、 その結果、関連した CMP が再生成されます。

2 つの Enterprise Bean (CMP 1.x) の間に関係を作成するには、 以下のようにします。

  1. J2EE パースペクティブに切り替えます。
  2. 「プロジェクト・エクスプローラー」ビューで、必要な EJB モジュールを選択します。
  3. デプロイメント記述子エディター (Deployment Descriptor Editor)」を右クリックして、ポップアップ・メニューから「アプリケーションから開く」を選択します。
  4. エディターの「概要」ページで、「関係」セクションを選択します。
  5. 追加」をクリックします。 「関係の追加」ウィザードが表示されます。
  6. Bean A リスト (左の列) から Enterprise Bean を 1 つ選択します。
  7. Bean B リスト (右の列) から Enterprise Bean を 1 つ選択します。「関係名」フィールドが、 選択された Enterprise Bean の名前を基にして自動的に作成されます。ただし、このフィールドを編集して関係を名前変更できます。
  8. 次へ」をクリックします。
  9. デフォルトで、役割名が自動的に生成されますが、これは変更できます。
  10. それぞれの役割ごとに、パラメーターを設定します。以下のオプションから選択します。
    • ナビゲート可能 は、 関連内のその他の Bean のインスタンスを、この役割を使用して検索できることを意味します。
    • 多重度 は、役割が、その他の Bean の多数のインスタンスを表している可能性があることを意味します。 1..x を使用することによって、必要な役割が作成されます。
    • 外部キー は、関係の指定された Enterprise Bean が、その他の関係役割の外部キーを保持していることを意味します。
  11. 終了」をクリックします。
注: CMP 1.x 関係をサポートするために、リンク・クラスが作成されます。これらのリンク・クラスは、Bean の基本キー・クラスのナレッジを必要とします。関係に含まれる CMP 1.x の基本キー・クラスを変更した場合でも、生成されたリンク・クラスには、引き続き古い基本キー・クラスへの参照が入っています。次善策は、手動でリンク・クラスを更新します。変更が必要になるオカレンスは 2 つしかありません。
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005.