CMP 1.x への関係を作成

CMP 1.x への関係は、EJB 1.x 仕様において標準ではありません。WebSphere® Application Server 拡張機能が、1.x 関係を取り扱うために作成されました。2 つのエンタープライズ Bean (CMP 1.x) 間の関係を作成することができます。

このタスクについて

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

1 つの CMP から別の CMP への関係を定義する場合、参照 CMP Bean のキー・フィールドに基づいた追加の CMP フィールドが、前方向参照役割の所有 CMP Bean に追加されます (所有 CMP Bean 上の「外部キー」チェック・ボックスが選択されています)。

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

手順

  1. Java™ EE パースペクティブに切り替えます。
  2. 「エンタープライズ・エクスプローラー」ビューで、任意の EJB モジュールを選択します。
  3. デプロイメント記述子を右クリックして、「アプリケーションから開く」 > 「デプロイメント記述子エディター」を選択します。
  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 つだけです。

フィードバック