Hibernate オブジェクト リレーショナル マッピングの生成
Workshop は、Hibernate のような一般的な永続性サービスを利用するための、多彩で柔軟性のあるオブジェクト リレーショナル マッピング インタフェースを備えています。
OR マッピングは、開発手法に応じて以下の異なるメカニズムで生成できます。
Hibernate OR マッピングをスキーマから作成する
Hibernate マッピングをオブジェクト モデルから生成する
Hibernate OR マッピングをスキーマから作成する
Workshop は、データベース スキーマをリバース エンジニアリングすることで、関連付けられているオブジェクト モデルとマッピングを自動的に生成するシンプルなメカニズムを提供します。
注意 : まだ [DbXplorer] を開いていない場合は、[ウィンドウ] メニューから [ビューの表示|その他] を選択します。[Workshop] ブランチを展開し、[DbXplorer] を選択して [OK] をクリックします。
- [DbXplorer] で、データベース アーティファクトを右クリックして [Hibernate マッピングの生成] を選択します。
![[Hibernate マッピングの生成] を選択する](images/reversehibernate1.gif)
- Hibernate マッピング ファイルとデータ オブジェクトを格納する Web アプリケーション プロジェクトを選択して [OK] をクリックします。Hibernate Web アプリケーションがないと、マッピングを生成することはできません。
注意 : 現時点の Workshop で Hibernate アプリケーションと見なされるのは、Eclipse ソース フォルダのルート レベルにコンフィグレーション ファイル hibernate.cfg.xml が格納されており、アプリケーションのクラスパスに hibernate.jar ファイルが含まれている Web アプリケーションです。
![Web アプリケーション プロジェクトを選択して [OK] をクリックする](images/reversehibernate2.gif)
- [データベース テーブル] ダイアログで、リバース エンジニアリングによってマッピングする適切なデータベースの接続、スキーマ、およびテーブルを選択して [次へ] をクリックします。
![テーブルを選択して [次へ] をクリックする](images/reversehibernate3.gif)
- [テーブルの関連付け] ダイアログに、外部キー定義に基づいてデータベース スキーマから抽出された現在のエンティティ関係が表示されます (緑のボックス)。関連を選び、その関連を有効にしてマッピングすべきかどうかを選択します。マッピングする場合は、その関連のプロパティを指定します。
![必要に応じてテーブルの関連を編集する](images/reversehibernate4.gif)
- マッピングすべきでない関連がある場合は、その関連を選択して [この関連付けの生成] のチェックをはずします。無効にした関連は、[テーブルの関連付け] ではグレーで表示されます。
![必要に応じて関連を無効にする](images/reversehibernate5.gif)
- Workshop では、新しい関連付けを作成することもできます。その場合は、[新しい関連付けの作成] オプションをクリックし、新しい関連のプロパティを指定します。Workshop では、2 つのテーブル間の [単純な関連付け] (一対一、一対多、多対一) と、中間テーブルを介した [多対多の関連付け] を作成できます。[次へ] をクリックすると、テーブル行の結合に使用するカラムが関連付けられます。
この機能は、外部キーが定義されていないデータベース テーブルで Hibernate マッピングを作成する場合や、多対多関係を作成する場合に便利です。
![単純な関係や多対多関係を新規作成する](images/reversehibernate6.gif)
- 新しい関連 (黄色のボックス) はデータベース スキーマから抽出されたものではないため、Hibernate マッピング ファイルおよびオブジェクト モデル内にプログラム的に作成されます。エンティティの関連のコンフィグレーションが完了したら [次へ] をクリックします。
![必要に応じて新しい関連を作成する](images/reversehibernate7.gif)
- [デフォルト テーブルの生成] ダイアログでは、必要に応じて省略可能なプロパティを入力して [次へ] をクリックします。
注意 : オブジェクト モデル クラスを生成するには Java パッケージが必要です。
![テーブル生成プロパティを入力する](images/reversehibernate8.gif)
- [テーブルとカラム] ダイアログで、生成されるマッピング ファイルと Bean クラスのテーブル マッピング名およびカラム マッピング名を定義します。デフォルトでは、Hibernate マッピング ファイルと JavaBean に、スキーマのテーブル名およびカラム名が使用されます。ツールチップに表示されているのは、データベース スキーマに定義されているテーブルおよびカラムのプロパティです。[次へ] をクリックします。
![テーブル カラムを Bean プロパティにマッピングする](images/reversehibernate10.gif)
- [マッピングの生成] ダイアログでは、どのアーティファクトを生成し、生成されるファイルに XDoclet メタ タグを追加するかどうかを決定します。[完了] をクリックすると、Hibernate マッピング ファイルとドメイン Java クラスが作成されます。
![コンフィグレーション ファイルの更新方法を指定する](images/reversehibernate11.gif)
ORM 生成ウィザードで指定したプロパティに基づいて、すべての Hibernate マッピング ファイルと Java Bean が生成されます。生成が完了したら、そのプロジェクトの [Hibernate コンフィグレーション] ブランチにある [AppXplorer] を使用してエンティティにアクセスできます。
なお、このウィザードで指定したすべての設定は記録されており、次回同じデータベース接続でこのウィザードを使用するときに再利用できます。
ORM 生成ウィザードの状態の保存
ORM エンティティ Bean を生成する前に、ORM 生成ウィザードの現在の状態を保存することができます。これにより、マッピング ウィザードを使用して、いくつかの O/R マッピングを指定した状態を保存し、後で復元して生成前にマッピングを追加することができます。ウィザードの最後のページで、[ウィザードの状態の保存] をクリックして、生成の前に現在のマッピングを保存します。
Hibernate OR マッピングをオブジェクト モデルから作成する
Workshop では、Hibernate マッピング ファイルを Java オブジェクト モデルから生成する、トップダウンの開発手法もサポートされています。すべてのエンティティ関係が定義されていれば、Hibernate マッピングに基づいて DDL 経由でスキーマを定義することも可能です。
- [ファイル] メニューから、[新規|その他] を選択します。[Hibernate] を展開します。[Java クラスからの Hibernate マッピング] を選択して [次へ] をクリックします。
![Java クラスから Hibernate マッピングを生成するにはオプションを選択する](images/topdown1.gif)
- [参照] ボタンを使用してマッピングするオブジェクトを選択し、自動的に生成されるマッピング ファイルの名前を選択して [次へ] をクリックします。
![使用する Java クラスを指定する](images/topdown2.gif)
- [クラス マッピングのプロパティ] ダイアログでは、指定できるデータベース情報と主キー プロパティがあれば指定して [次へ] をクリックします。開発手法によってはデータベースがまだ定義されていない場合もあるので、[データベース スキーマ] オプションと [データベース テーブル] オプションは必須ではありません。
![データベース情報を指定する](images/topdown3.gif)
- [Bean プロパティのマッピング] ダイアログで、どの Bean プロパティをマッピングするかを選択します。プロパティを強調表示にして [削除] ボタンをクリックすると、そのプロパティのマッピングを Hibernate マッピング ファイルから削除できます。プロパティをマッピングする場合は、そのプロパティを選択して [編集] をクリックし、カラムのマッピング情報を指定します。
![必要に応じてプロパティを削除または編集する](images/topdown4.gif)
- Bean プロパティのマッピングをコンフィグレーションするには、適切な情報を入力して [OK] をクリックします。データベース スキーマを利用できる場合は、[参照] をクリックすると、そのテーブルで使用できるカラム名の一覧が表示されます。
![必要に応じてデータベース情報を追加する](images/topdown5.gif)
- 単純なデータ型でなく、コレクションとして設定されている Bean プロパティもあります。コレクションのマッピング プロパティを定義するには、項目を強調表示にして [編集] をクリックします。[コレクション型]、[要素型]、および [カーディナリティ] を指定して [次へ] をクリックします。
![コレクションのマッピング プロパティを編集する](images/topdown6.gif)
- 選択した [カーディナリティ] に基づき、[コレクション エンティティ] と [Set Properties] を指定して [終了] をクリックします。次の例では、orderDetails コレクションを外部キー ProductId で OrderDetail にマッピングしています。
![コレクションのエンティティ情報を指定する](images/topdown7.gif)
- すべての Bean プロパティの選択とカラム マッピング情報の追加が完了したら、[終了] をクリックして Hibernate マッピングを生成します。
[DbXplorer] によるデータベースの操作
エンティティの関係の管理
Hibernate のコンフィグレーション
さらにヘルプが必要ですか。質問は Workshop
ニュース グループまでお寄せください。