「エンタープライズ Bean の作成」ウィザードを使用すると、CMP エンティティー Bean を作成できます。
コンテナー管理パーシスタンス (CMP) フィールドを持つエンティティー Bean を作成する方法:
- J2EE パースペクティブで、と選択する。
「エンタープライズ Bean の作成」ウィザードが表示されます。
- 「コンテナー管理パーシスタンス (CMP) フィールド付きのエンティティー Bean 」ラジオ・ボタンを選択する。
- Bean を追加する「EJB プロジェクト」を選択する。
- 「Bean 名」フィールドに、エンタープライズ Bean に割り当てる名前を入力する。規則により、Bean 名は大文字で始める必要があります。
注: Bean の名前にユニコードを使用することができますが、
ユニコード文字は、エンタープライズ Bean に関連付けられたエンタープライズ Bean のパッケージ、およびクラス用にはサポートされていません。
- 「ソース・フォルダー」フィールドで、新規 Bean 用のソース・フォルダーを選択する。
- 「デフォルト・パッケージ」フィールドに、新規 Bean 用のパッケージ名を入力する。
- Bean を EJB 2.0 以降のプロジェクトに追加する場合は、「CMP バージョン」ドロップダウン・リストで、新規エンティティー Bean に使用したい EJB 仕様レベルを選択する。
- 任意: EJB 2.x Bean の場合、「注釈付き Bean クラスの生成」を選択できる。 このオプションを選択すると、ウィザードはその Bean クラスの Java™ コードの先頭に注釈を生成します。
注釈は、ウィザードで指定したように Bean の実装を定義します。
この注釈は、EJB ツールが、必要な Bean クラスの生成および EJB デプロイメント記述子 (ejb-jar.xml) に挿入される値の提供に使用します。注釈を使い慣れており、デプロイメント記述子よりもむしろ注釈を利用して Bean を更新したい場合は、このオプションを選択してください。
詳しくは、『注釈ベース・プログラミングの概要』を参照してください。
- 「次へ」をクリックする。
- 新規の Bean が同じ EJB プロジェクト内の同じ型の既存 Bean から継承するようにする場合は、「Bean スーパータイプ」ドロップダウン・リストから Bean を選択する。
- 「Bean クラス」フィールドに、その Bean クラス用の希望のパッケージおよびクラス名を入力する。 ウィザードでは、デフォルトで、Bean 名と定義したデフォルト・パッケージに基づいた Bean クラスを勧められます。
Bean クラスは、ウィザードが生成した新規クラス、またはプロジェクトのクラスパス内の既存のクラスでも構いません。「クラス」ボタンをクリックして、
Bean 型に対応するプロジェクト内のクラスをリストするダイアログを開きます。
既存のクラスは、ソースを付けて Bean クラス名を青色で表示されます。
既存のバイナリー・クラスの Bean クラス名は、赤色で表示されます。
- クライアント・ビューとインターフェースを定義する。EJB 2.0 以降の Bean の場合、リモート・クライアント・ビューまたはローカル・クライアント・ビュー、あるいはその両方を含めることができます。
EJB 1.1 Bean の場合は、リモート・クライアント・ビューのみがサポートされます。すべてのセッションまたはエンティティー Bean ごとに最低 1 つのクライアント・ビューが必要です。
- リモート・クライアント・ビュー: セッション Bean 用にリモート・クライアント・ビューを組み込む場合は、このチェック・ボックスを選択します。
「リモート・ホーム・インターフェース」および「リモート・インターフェース」フィールドには、リモート・クライアント・ビュー・インターフェース用に使用したいパッケージ名とクラス名を入力します。
ウィザードは、インターフェース・パッケージおよびクラス名の値として Bean 名とデフォルト・パッケージを推奨します。
- ローカル・クライアント・ビュー: セッション Bean 用にローカル・クライアント・ビューを組み込む場合は、このチェック・ボックスを選択します。
「ローカル・ホーム・インターフェース」および「ローカル・インターフェース」フィールドには、ローカル・クライアント・ビュー・インターフェース用に使用したいパッケージ名とクラス名を入力します。
ウィザードは、インターフェース・パッケージおよびクラス名の値として Bean 名とデフォルト・パッケージを推奨します。
- エンティティー Bean の CMP 属性を定義する。
- 「追加」ボタンをクリックする。
- 属性の「名前」と「型」を指定する。
- 属性をエンティティー Bean のキー・フィールドにするために「キー・フィールド」を選択する。
- 新規 Bean のクライアント・ビューによっては、属性の getter および setter メソッドをリモートおよびローカル・インターフェースにプロモートすることを選択できる。
- 「適用」をクリックすると属性が作成される。
属性の定義が完了したら、「閉じる」をクリックします。
デフォルトで、ウィザードは以下の CMP 属性を指定し、それがキー・フィールドであると宣言します。
- 名前: ID
- 型: java.lang.Integer
この属性は編集または除去できます。注: この Bean が継承されない場合はキーが必要です。キーが定義されていない場合は、Bean には検証エラーが発生します。Bean の作成後、デプロイメント記述子エディターでキー属性を追加するか、もしくは既存の属性をキーにすることができます。
- 「キー・クラス」フィールドに、その Bean のキー・クラスのパッケージおよびクラス名を入力する。
デフォルトで「キー・クラスに単一のキー属性型を使用」チェック・ボックスが選択され、
キー CMP 属性の型がキー・クラスとして使用されます。
型が有効な primkey-field (例えば、java.lang.Integer) である単一キー属性が存在する場合、このオプションを使用できます。
複数のキー属性を組み込むと、新しい複合キー・クラスが作成されます。
- 「次へ」をクリックする。
- 任意: 「Bean スーパークラス」フィールドで、
希望のクラスを入力または選択する。Bean のスーパータイプを選択した場合、このフィールドは使用不可になります。
- 任意: 拡張したいリモートまたはローカル・クライアント・インターフェースを定義する。
- 「追加」ボタンをクリックする。すると、「型の選択」ダイアログ・ボックスが開かれるので、そこで拡張したいインターフェースを選択します。
- 以前追加したインターフェースを今後は拡張する必要がない場合は、リストでそのインターフェースを選択して「除去」をクリックします。
- 「終了」をクリックする。 新規のエンティティー Bean が指定された EJB プロジェクトに追加されます。
制約事項: 継承された CMP エンティティー Bean をセットアップすると、子 Bean は親のチェーンのどこかで定義されている CMP 属性と同じ名前の CMP 属性を持つことはできません。例えば、Parent は int 型の属性 ID を持つ CMP エンティティー Bean とします。ウィザードを使用して Child という CMP Bean を作成し、Parent をそのスーパータイプとして指定し、また int 型の ID 属性を追加しようとすると、ID 属性は Parent の ID 属性を継承するので、ID 属性は追加されません。Child2 (別の関連性のない CMP Bean) は java.lang.String 型の ID 属性を持ち、デプロイメント記述子エディターで Parent から継承するようにその継承構造を変更しました。Child2 の java.lang.String 型の ID 属性は、Parent の ID を継承し、また型の競合による検証エラーが存在することがあるので、除去されます。