CMP2.0リレーションを定義する
EJB2.0/EJB2.1仕様のContainer-managed persistence Entity Beanのリレーションは、CMP2.0 リレーション定義ウィザードで定義します。このウィザードはEntity Beanと、別のEntity Beanの関係を設定するために使用します。このためCMP2.0リレーション 定義ウィザードを使用する前に、同一プロジェクト配下に関係を定義するEJB2.0 Container-managed persistence Entity Beanを作成しておく必要があります。
CMP2.0リレーション定義ウィザードは、新規ウィザードから[EJB] > [J2EE] > [CMP2.0リレーション定義]を選択します。以下の設定項目を確認、入力してください。
deployment descriptorの指定
リレーション定義を行うEntity Beanのdeployment descriptorファイルを指定します。
項目 | 説明 |
---|---|
ejb-jar.xmlファイル | ejb-jar.xmlのパスを指定します。 |
CMP2.0 リレーション情報の指定
Entity Bean間の関係を指定します。
項目 | 説明 |
---|---|
追加 | リレーション情報を新規に追加します。 |
削除 | 一覧で選択しているリレーション情報を削除します。 |
編集 | 一覧で選択しているリレーション情報を編集します。 |
Home/Componentインタフェースにリレーション情報を反映する | CMRフィールドのアクセスメソッドをLocalインタフェースに反映したい場合に指定します。 |
リレーションの追加/編集
Entity BeanとEntity Beanの関係を指定します。
便宜上、関係を定義するEnterprise Beanの片方をEnterprise Bean A、もう片方をEnterprise Bean Bとしています。
項目 | 説明 |
---|---|
EJBリレーション名 | Entity Bean間のリレーション名を指定します。EJBリレーション名は省略可能です。 |
多重度 | Entity Bean間の多重度を指定します。多重度とは、リレーションを構成するEnterprise Beanの対応関係で、1対1、1対多、多対多の関係が存在します。 |
EJBリレーションロール名 | リレーションを構成するEntity Beanのリレーションロール名を指定します。EJBリレーションロール名は省略可能です。 |
Enterprise Bean名 | リレーションを構成するEntity BeanのEnterprise Bean名を指定します。 |
Bean A/Bを参照するフィールド名 | 相手のEnterprise Beanを参照するCMRフィールド名を指定します。どちらか一方は必ず指定する必要があります。 |
CMRフィールド型 | リレーションの相手となるEnterprise Bean を参照するCMRフィールドの型を指定します。多重度がOne:Many、Many:OneまたはMany:Manyで、相手側が多数の場合にjava.util.Collectionまたはjava.util.Setのどちらかを指定できます。 |
Bean Aが削除された時に削除、Bean Bが削除された時に削除 | リレーション関係にあるEnterprise Beanの片方が削除された場合に、もう片方を削除するかどうかを指定します。 |
説明 | このリレーション定義に関する説明を記述します。説明は省略可能です。 |
マッピングAタブ | Enterprise Bean Aに指定したEnterprise Beanと対応付けるデータベース情報を指定します。多重度がOne:Oneの場合に、相手のEnterprise BeanのPrimary keyを参照するデータベースのカラムを指定する必要があります。 |
マッピングBタブ | Enterprise Bean Aに指定したEnterprise Beanと対応付けるデータベース情報を指定します。多重度がOne:Oneの場合に、相手のEnterprise BeanのPrimary keyを参照するデータベースのカラムを指定する必要があります。 |
Joinテーブル | 多重度がOne:Many、Many:One、Many:Manyの場合に必要なJoinテーブルの情報を指定します。 |
マッピングA、マッピングBの指定
データベースの表または列をEnterprise Beanのフィールドにマッピングするための情報を指定します。
この画面で指定された情報はCMP拡張情報ファイルに保存されます。
項目 | 説明 |
---|---|
データソース名 | 対応するEnterprise Beanのフィールドを永続化するデータベースのデータソース名を指定します。 |
スキーマ名 | 対応するEnterprise Beanのフィールドを永続化するデータベースのスキーマ名を指定します。 |
テーブル名 | 対応するEnterprise Beanのフィールドを永続化するデータベースのテーブル名を指定します。 |
PK | Primary keyの場合にチェックします。 |
DBカラム名 | 永続化フィールドに対応付けるデータベースのカラム名を指定します。 |
結合先Enterprise Bean名、結合先フィールド名 | DBカラム名に対応付ける永続化フィールドのEnterprise Bean名とフィールド名を指定します。多重度がOne:Oneの場合には、相手のEnterprise BeanのPrimary keyの永続化フィールドと対応付けるDBカラムが必要です。 |
追加 | 行を新規に追加します。 |
削除 | 一覧で選択している行を削除します。 |
DB参照 | データベースの表または列を参照して行を追加します。[DB参照]をクリックすると、ログイン画面が表示されます。 |
Joinテーブルの指定
多重度がOne:Many、Many:One、Many:Manyの場合に作成されるJoinテーブルの情報を指定します。
この画面で指定された情報は、Enterprise Bean AのCMP拡張情報ファイルに保存されます。
項目 | 説明 |
---|---|
スキーマ名 | テーブルとテーブルを関係付けるためのJoinテーブルのスキーマ名を指定します。 |
Joinテーブル名 | テーブルとテーブルを関係付けるためのJoinテーブルのテーブル名を指定します。 |
PK | JoinテーブルのPrimary key項目をチェックします。多重度のMany側のEnterprise BeanのPrimary key項目がJoinテーブルのPrimary key項目になります。そのため、多重度がMany:Manyの場合には、すべての項目がPrimary keyになります。 |
DBカラム名 | データベースのカラム名を指定します。 |
結合先Enterprise Bean名、結合先フィールド名 | DBカラム名に対応付ける永続化フィールドのEnterprise Bean名とフィールド名を指定します。リレーションを定義する両方のEnterprise BeanのPrimary key項目と対応付けるDBカラムが必要です。 |
追加 | 行を新規に追加します。 |
削除 | 一覧で選択している行を削除します。 |
DB参照 | データベースの表または列を参照して行を追加します。[DB参照]をクリックすると、ログイン画面が表示されます。 |
リレーション定義の詳細については、"Interstage Application Server J2EE ユーザーズガイド(旧版互換)"を参照してください。
deployment descriptor(ejb-jar.xml)の編集
deployment descriptor(ejb-jar.xml)の編集は、XMLエディタを用います。編集については、"XMLファイルを編集する"を参照してください。
CMP拡張情報ファイルを作成する
CMP拡張情報ファイルの作成
Enterprise Beanクラスのソースを自分で作成した場合など、何らかの理由で、Enterprise Beanに対応するCMP拡張情報ファイルが存在しない場合、CMP拡張情報ファイルを単体で生成することができます。
CMP拡張情報ファイルは、新規ウィザードから[EJB] > [J2EE] > [CMP拡張情報]を選択し、ウィザードで作成します。ウィザードの設定は以下を参考にしてください。
項目 | 説明 |
---|---|
ejb-jar.xmlファイル | ejb-jar.xmlのパスを指定します。 |
Enterprise Bean名 | ejb-jar.xmlのパスを指定すると、定義されているContainer-managed persistence Entity Beanの一覧が表示されますので、CMP拡張情報ファイルを生成したいEnterprise Beanを選択します。 |
注意
Java EEコンテナ向けのアプリケーションではCMP拡張情報ウィザードは動作しません。
ポイント
CMP拡張情報ファイルは、指定されたejb-jar.xmlが存在するソースフォルダのルートに生成されます。
CMP拡張情報ファイルの編集
CMP拡張情報ファイルを編集するには、CMP拡張情報エディタを利用します。CMP拡張情報エディタは、CMF(Container-managed Field)とデータベースとの対応付けや、finderメソッドの検索条件を編集するためのエディタです。
CMP拡張情報ファイルの編集は、[プロジェクトエクスプローラ]ビューなどから、FJCMP_(Enterprise Beanクラス名).xmlを選択し、コンテキストメニューで[アプリケーションから開く] > [CMP拡張情報エディタ]を選択します。一度、編集するとエディタが対応付けられるため、ダブルクリックやポップアップメニューの[開く]でもCMP拡張情報エディタを起動することができます。
ポイント
CMP拡張情報エディタでは、XMLをそのまま表示する機能を提供していません。XMLソースを直接編集する場合は、XMLエディタを利用してください。