EJB デプロイメント記述子エディターは、作成する関係をサポートするための適切な finder メソッドを生成します。
1 つの CMP Bean から別の CMP Bean への関係を定義する場合、 参照 CMP Bean のキー・フィールドに基づいた追加の CMP フィールドが、前方向参照役割の所有 CMP Bean に追加されます (所有 CMP Bean 上の「外部キー」チェック・ボックスが選択されています)。
例えば、Company は Employee に対して「1: 多」の関係を持っており、それぞれ会社の役割と従業員の役割を持っています。 会社の役割が前に置かれます。 そして、Company CMP Bean には「companyID」および「companyName」というキー・フィールドがあります。 Employee Bean に自動的に追加される CMP フィールドは、「company_companyID」および「company_companyName」となります。 これらのフィールドは、「従業員」関係役割をサポートするために追加されたフィールドであるため、 EJB エディター内では非表示となります。関係がまだ存在している間に、 これらの CMP フィールドを ejb-jar.xml ファイルから除去すると、問題が発生します。
関係が作成されると、追加クラスが作成されて、ランタイムをサポートし、これら 2 つの Bean 間のリンクを保守します。 さらに、追加のメソッドが両方のエンタープライズ Bean のホーム、リモート、および Bean の各クラス内に生成されます。 関係が初めて作成された場合は、EJB デプロイメント記述子エディターでコンパイル・エラーが発生します。 これは、生成リンク・クラスはコンパイルする必要があるためです。 これらのファイル内には実際のコードが記載されていますが、ホーム、リモート、 および Bean の各クラスの変更は、まだコンパイルされていません。 コンパイルは、プロジェクトがビルドされるまで行われません。 これは、EJB デプロイメント記述子エディターまたは EJB エディターが保管されると、自動的に実行されます。 したがって、エディターが保管されるまで、コンパイル・エラーは発生しません。
注: 1 つ以上の CMP Bean 間に関係が存在する場合、 1 つの CMP のキーの形状を変更すると、関連した CMP が再生成されます。
例えば、関係を使用しており、リモート・インターフェース上で、エンタープライズ Bean の列挙型を戻す関係メソッドを呼び出す場合、 そのメソッド呼び出しはこれらの JAR ファイルをクラスパスに追加しない限り、例外をスローします。