コンテナ管理による関係について

関連項目

リレーショナルデータベースの表と同様に、エンティティー Bean をほかのエンティティー Bean と関係付けることができます。Bean 管理による持続性によって、作成したコードで関係が実装されます。しかし、コンテナ管理による持続性を使用した場合は、EJB コンテナが関係を管理します。

たとえば、J2EE JDK に付属の例 cmpcustomer について考えてみます。この例では、顧客、住所、および加入情報の関係が定義されています。各顧客には、1 つ以上の住所があります。顧客には、ゼロ件以上の加入情報があります。同様に、1 つの加入情報は複数の顧客に関連付けることができます。

上記の例を正しく動作させるには、これらのデータベースの表を表すエンティティー Bean 間の関係を正しく設定する必要があります。既存のデータベースから CMP エンティティー Bean を生成するときに、IDE はモジュールの CMP 関係と CMP フィールドを自動的に設定し、Sun Java System Application Server が使用するデフォルトのマッピングを作成します。

方向

データベース間の関係には、単方向と双方向があります。たとえば、上記の例 cmpcustomer では、顧客の表が住所の表を参照しますが、住所の表は顧客の表を参照しないので、顧客と住所の関係は単方向です。一方、加入情報と顧客の関係は、双方向です。

多重度

多重度 (カーディナリティ) とは、関係のそれぞれの側に存在できるインスタンスの数です。エンティティー Bean は、次の多重度を持つことができます。

カスケード削除

1 つの表の存在が、それを参照する表の存在に依存することがよくあります。たとえば、上記の例 cmpcustomer では、顧客の住所を個別に追加および削除できます。ただし、住所のインスタンスは顧客に関連付けられている必要があるので、顧客を削除すると、その顧客に関連付けられたすべての住所も自動的に削除されます。

この処理は、カスケード削除の設定によって、アプリケーションサーバーが自動的に行います。関係のカスケード削除を有効にすると、ある Bean を削除したときに、それが参照している関係付けられた Bean のインスタンスがすべて削除されます。

IDE におけるコンテナ管理による関係

データベースから CMP エンティティー Bean を生成すると、データベースでの関係に基づいて、IDE が自動的にすべてのコンテナ管理による関係を登録します。CMP 関係は、EJB モジュールの ejb-jar.xml 配備記述子で管理できます。

関連項目
コンテナ管理による関係の管理
配備記述子について
EJB 配備記述子の構成
EJB モジュールの設定について

著作権と商標について