Workshop を使用すると、JPA 永続性レイヤを非常に簡単に作成できます。EJB3 エンティティは、以下のいずれかの方法で作成できます。
Workshop では、persistence.xml の作成とクラス ソース コードのアノテーションを手動で行うことも可能です。
作業を始めるには、JPA をサポートする Web アプリケーション プロジェクトが必要になります。また、作業の途中で行っても構いませんが、前もってデータベース接続を設定しておいたほうがよいでしょう。
EJB3 エンティティ Bean は、既存のデータベース スキーマから作成できます。その場合は、適切なアクセサと EJB3 アノテーションで Java クラスが生成されます。作成したエンティティ Bean は、データベースと対話する永続性レイヤになります。
ここでは、employee データベースへの接続を例にとって説明します。
接続を選択したら、スキーマを選択し (選択できるスキーマがある場合)、つづいてエンティティ Bean の生成元となるテーブルを選択します。作成した永続性レイヤを使用するコードからこのドライバを利用できるようにする場合は、[ドライバのコピーとクラスパスへの追加] チェック ボックスをチェックしたままにします。(このチェックをはずした場合は、後でプロジェクト プロパティ ダイアログを使用してドライバ ライブラリを追加できます)。なお、エンティティ Bean は、ダイアログで選択したテーブルごとに 1 つずつ生成されます。
テーブルが選択された状態で [次へ] をクリックします。
このダイアログには、データベース スキーマ内の外部キーの関係に基づいて、テーブル間の関連が表示されます。緑のボックスは、エンティティの関係に変換される関連を示します。このダイアログを使用して、作成するエンティティ Bean 用に生成する関連を決定します。
ここでは、categories と products が関連付けられていない場合に、その関連を追加する場合の手順を示します。
[Java パッケージ] ボックスには、必ず値を入力します。この値が、生成されたエンティティ Bean を格納するパッケージになります。それ以外のプロパティはすべて省略可能です。これらのクラスのパッケージをまだ作成していない場合は、ボックスの [参照] ボタンをクリックして作成できます。
[キー ジェネレータ] ドロップダウンには、主キーの生成方法を決定する値の一覧が表示されます。選択できる値は次のとおりです。
![]() |
![]() |
![]() |
||||||||||||
![]() |
|
![]() |
||||||||||||
![]() |
![]() |
![]() |
[エンティティ アクセス] ドロップダウンには、エンティティ オブジェクト内のデータへのアクセス方法を決定する値の一覧が表示されます。選択できる値は次のとおりです。
![]() |
![]() |
![]() |
||||||
![]() |
|
![]() |
||||||
![]() |
![]() |
![]() |
スキーマ ツリー内のテーブルを選択すると、ツリーの下の領域に、そのテーブルを生成されるエンティティ Bean に変換する方法が表示されます。[テーブル マッピング] で、生成されるエンティティ Bean の特性を編集します。デフォルト値のままにしても構いません。デフォルトでは、生成されるクラス名にスキーマのテーブル名が使用されます。ツールチップに表示されているのは、データベース スキーマに定義されているテーブルおよびカラムのプロパティです。
スキーマ ツリー内のカラムを選択すると、ツリーの下の領域に、そのカラムを生成されるエンティティ Bean のプロパティに変換する方法が表示されます。[カラム マッピング] で、生成されるエンティティ Bean のプロパティの特性を編集します。デフォルト値のままにしても構いません。
ORM エンティティ Bean を生成する前に、ORM 生成ウィザードの現在の状態を保存することができます。これにより、マッピング ウィザードを使用して、いくつかの O/R マッピングを指定した状態を保存し、後で復元して生成前にマッピングを追加することができます。ウィザードの最後のページで、[ウィザードの状態の保存] をクリックして、生成の前に現在のマッピングを保存します。
データベース スキーマを使用すると、既存の Java クラス (POJO) にアノテーションを追加して EJB3 エンティティ Bean にすることができます。その場合は、適切なアクセサに EJB3 アノテーションが追加されます。
ここでは、employee データベースへの接続を例にとって説明します。
![]() |
![]() |
![]() |
||||||
![]() |
|
![]() |
||||||
![]() |
![]() |
![]() |
つまり、[property] を選択した場合はクラスのアクセサにアノテーションが追加され、[field] を選択した場合はクラスのフィールドにアノテーションが追加されます。
次の図のように設定した場合、employee テーブルが上の手順で選択した sample.employeeinfo.Employee
クラスにマッピングされます。また、そのクラスの employeeId
フィールドは、テーブルの主キーにマッピングされます。
[Bean プロパティのマッピング] で、データベース カラムと、アノテーションを追加する Java クラス内のフィールドとの間のマッピングを確認し、必要に応じて編集します。なお、[編集] ボタンをクリックすると、選択したプロパティ マッピングを編集するための [基本プロパティ タグ] ダイアログが表示されます。
これにより、Java クラスのソース コードに EJB3 アノテーションが追加されます。これらのアノテーションによって、クラスとそのプロパティまたはフィールドが、選択したテーブルおよびカラムにマッピングされます。