[Hibernate] Hibernateを使った開発アプローチ | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

Hibernateでは、Java Beans、マッピングファイル、データベースの表定義のいずれか1つを作成すれば、あとの2つを自動生成することができます。

Hibernate

そのため、開発アプローチには以下のようなパターンがあります。

トップダウン(Top-down)
Java Beansを元に、マッピング定義ファイルとデータベースの表を自動生成する。
ボトムアップ(Bottom-up)
データベースの表定義を元に、Java Beansとマッピング定義ファイルを自動生成する。
ミドルアウト(Middle-out)
マッピング定義ファイルを元に、Java Beansとデータベースの表を自動生成する。
ミートインザミドル(Meet-in-the-middle)
Java Beansとデータベースの表を元にマッピングファイルを作成する。

トップダウンアプローチは、UMLなどを使って記述したクラス図から永続化クラスとデータベースの表定義を導き出す場合に有効なアプローチだと思われます。


オブジェクト指向開発的にはこれが理想的な形なのではないでしょうか。

しかし、トップダウンアプローチで表定義を自動生成した場合、RDBMS固有の領域設定などの詳細な設定まではできないため、データベースに対する機能要件のシビアなシステムではこのアプローチはなかなかフィットしないものと思われます。

一方、ボトムアップアプローチは、既にデータベースに表が存在する場合や、従来のE/Rツールを使ってデータベース設計を行う場合に有効なアプローチだと思われます。


データベース的に最適な実装にしたいデータベースエンジニア的にはこちらのアプローチの方が好まれるに違いありません。


ミドルアウトやミートインザミドルは、あまりイメージがわかないですが、ミドルアウトはトップダウンに近いアプローチ、ミートインザミドルはトップダウンとボトムアップの折衷案と言ったところでしょうか。