コンテナー管理パーシスタンスを持つエンティティー Bean の作成

「エンタープライズ Bean の作成」ウィザードを使用すると、コンテナー管理パーシスタンス (CMP) エンティティー Bean を作成できます。

コンテナー管理パーシスタンス (CMP) フィールドを持つエンティティー Bean を作成するには、以下の手順を実行します。

  1. J2EE パースペクティブで、「ファイル」 > 「新規」 > 「その他」 > 「EJB」 > 「エンタープライズ Bean」 とクリックする。 「エンタープライズ Bean の作成」ウィザードが表示されます。
  2. コンテナー管理パーシスタンス (CMP) フィールド付きのエンティティー Bean 」ラジオ・ボタンを選択する。
  3. Bean の追加先とする「EJB コンポーネント」を選択する。
  4. Bean 名」フィールドに、エンタープライズ Bean に割り当てる名前を入力する。 規則により、Bean 名は大文字で始める必要があります。
    注: Bean 名にはユニコード文字を使用できますが、 ユニコード文字は、エンタープライズ Bean に関連付けられたエンタープライズ Bean のパッケージ、およびクラスではサポートされていません。
  5. ソース・フォルダー」フィールドで、新規 Bean 用のソース・フォルダーを選択する。
  6. デフォルト・パッケージ」フィールドに、新規 Bean 用のパッケージ名を入力する。
  7. Bean を EJB 2.0 以降のプロジェクトに追加する場合は、「CMP バージョン」ドロップダウン・リストで、新規エンティティー Bean に使用したい EJB 仕様レベルを選択する。
  8. オプション: EJB 2.x Bean の場合、「注釈付き Bean クラスの生成」を選択することもできます。 このオプションを選択すると、ウィザードはその Bean クラスの Java™ コードの先頭に注釈を生成します。 注釈は、ウィザードで指定したように Bean の実装を定義します。 この注釈は、EJB ツールが、必要な Bean クラスの生成および EJB デプロイメント記述子 (ejb-jar.xml) に挿入される値の提供に使用します。注釈を使い慣れており、デプロイメント記述子よりもむしろ注釈を利用して Bean を更新したい場合は、このオプションを選択してください。

    詳しくは、『注釈ベース・プログラミングの概要』を参照してください。

  9. 次へ」をクリックする。
  10. Bean クラス」フィールドに、その Bean クラス用の希望のパッケージおよびクラス名を入力する。 ウィザードでは、デフォルトで、Bean 名と定義したデフォルト・パッケージに基づいた Bean クラスを勧められます。 Bean クラスは、ウィザードが生成した新規クラス、またはプロジェクトのクラスパス内の既存のクラスでも構いません。「クラス」ボタンをクリックして、 Bean 型に対応するプロジェクト内のクラスをリストするダイアログを開きます。 既存のクラスは、ソースを付けて Bean クラス名を青色で表示されます。 既存のバイナリー・クラスの Bean クラス名は、赤色で表示されます。
  11. クライアント・ビューとインターフェースを定義する。EJB 2.0 以降の Bean の場合、リモート・クライアント・ビューまたはローカル・クライアント・ビュー、あるいはその両方を含めることができます。 EJB 1.1 Bean の場合は、リモート・クライアント・ビューのみがサポートされます。すべてのセッションまたはエンティティー Bean ごとに最低 1 つのクライアント・ビューが必要です。
    • リモート・クライアント・ビュー: セッション Bean 用にリモート・クライアント・ビューを組み込む場合は、このチェック・ボックスを選択します。

      リモート・ホーム・インターフェース」および「リモート・インターフェース」フィールドには、リモート・クライアント・ビュー・インターフェース用に使用したいパッケージ名とクラス名を入力します。 ウィザードは、インターフェース・パッケージおよびクラス名の値として Bean 名とデフォルト・パッケージを推奨します。

    • ローカル・クライアント・ビュー: セッション Bean 用にローカル・クライアント・ビューを組み込む場合は、このチェック・ボックスを選択します。

      ローカル・ホーム・インターフェース」および「ローカル・インターフェース」フィールドには、ローカル・クライアント・ビュー・インターフェース用に使用したいパッケージ名とクラス名を入力します。 ウィザードは、インターフェース・パッケージおよびクラス名の値として Bean 名とデフォルト・パッケージを推奨します。

  12. オプション: キー・クラス」フィールドに、その Bean のキー・クラスのパッケージおよびクラス名を入力します。 デフォルトで「キー・クラスに単一のキー属性型を使用」チェック・ボックスが選択され、 キー CMP 属性の型がキー・クラスとして使用されます。 型が有効な 1 次キー・フィールド (例えば、java.lang.Integer) である単一キー属性が存在する場合に、このオプションを使用します。 複数のキー属性を組み込むと、新しい複合キー・クラスが作成されます。 別のキー・クラスを指定するには、「キー・クラスに単一のキー属性型を使用」 チェック・ボックスを選択解除し、キー・クラスの名前を指定します。
  13. オプション: エンティティー Bean の CMP 属性を定義します。
    1. 追加」ボタンをクリックする。
    2. 属性の「名前」と「」を指定する。
    3. オプション: 属性が配列である場合は、「Array」 チェック・ボックスを選択します。配列の「Dimensions」の数を指定してください。
    4. オプション: 属性をエンティティー Bean のキー・フィールドにするためには、「キー・フィールド」を選択します。
    5. オプション: 新規 Bean のクライアント・ビューによっては、属性の getter メソッドおよび setter メソッドをリモート・インターフェースとローカル・インターフェースにプロモートする選択ができます。
    6. 適用」をクリックすると属性が作成される。 属性の定義が完了したら、「閉じる」をクリックします。
    デフォルトで、ウィザードは以下の CMP 属性を指定し、それがキー・フィールドであると宣言します。
    • 名前: ID
    • : java.lang.Integer
    この属性は編集または除去できます。
    注: この Bean が継承されない場合はキーが必要です。キーが定義されていない場合は、Bean には検証エラーが発生します。Bean の作成後、デプロイメント記述子エディターでキー属性を追加するか、もしくは既存の属性をキーにすることができます。
  14. 次へ」をクリックする。
  15. オプション: 「Bean スーパークラス」フィールドで、 目的のクラスを入力または選択する。
  16. オプション: 拡張したいリモートまたはローカル・クライアント・インターフェースを定義します。
    • 追加」ボタンをクリックする。すると、「型の選択」ダイアログ・ボックスが開かれるので、そこで拡張したいインターフェースを選択します。
    • 以前追加したインターフェースを今後は拡張する必要がない場合は、リストでそのインターフェースを選択して「除去」をクリックします。
  17. 「終了」をクリックする。 新規のエンティティー 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 を継承し、また型の競合による検証エラーが存在することがあるので、除去されます。

フィードバック