関係役割をキーに追加

キー・クラスに関係役割を追加する必要があります。

このタスクについて

追加する関係役割には、以下の特性がなければなりません。

さらに、キーを追加するエンタープライズ Bean は、ルート Bean である必要があります (スーパータイプからは継承しません)。 これは、継承された Bean はスーパータイプの主キー・クラスを使用する必要があるため、 キー・クラスの形状を変更できないからです。

次のタスクは 2 つのエンタープライズ Bean を参照します。 1 つには役割 (この Bean) が含まれ、1 つは役割内に表示されます (もう一方の Bean)。

手順

  1. Java™ EE パースペクティブの「エンタープライズ・エクスプローラー」ビューで、EJB プロジェクトのデプロイメント記述子を右クリックし、「アプリケーションから開く」 > 「デプロイメント記述子エディター」を選択してデプロイメント記述子エディターを開きます。
  2. 「Bean」ページで、キーに追加する関係役割が含まれているエンタープライズ Bean を選択し、「関係」セクションにスクロールします。
  3. 「キーに追加」をクリックします。

タスクの結果

このアクションにより、もう一方の Bean のキー・フィールドが、 この Bean のキー・クラスと Bean クラスの両方に追加されます。 役割が主キーに追加されると、アソシエーションも再生成されます。

アソシエーションから Bean を削除するときは注意が必要です。 役割の 1 つをいずれか 1 つの Bean のキーに追加した場合は、 キー内で役割を持つ Bean をもう一方の Bean より先に削除する必要があります。 データベースの制約により、こうする必要があります (役割がキーの一部でなくても同様です)。 しかし、データベースの制約がない場合でも、依然として問題が発生します。 例えば、1 対 1 のアソシエーションで Customer Bean と Address Bean を持っている場合に、 Address Bean の顧客役割が外部キーを持ち、顧客役割が Address Bean の主キーであるとします。 先に Address Bean を削除しないで Customer Bean を削除した場合、アソシエーション保守コードは Address Bean の顧客役割外部キーを NULL に設定しているときに、Address Bean の主キーも NULL に設定しようとします。


フィードバック