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

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

手順

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

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

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

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

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

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

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

フィードバック