CMP 1.x 用の関係の作成

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

EJB デプロイメント記述子エディターを使用して、 対象の EJB プロジェクトまたはモジュール内の 2 つのエンタープライズ 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 ファイルから除去された場合は、問題が発生します。

2 つのエンタープライズ Bean (CMP 1.x) の間に関係を作成するには、 以下のようにします。

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

フィードバック