2005.10.23 · 技術と道具

Hibernateをいじる(2)

さて、このシリーズの主役はHibernateです。

1.お題

Hibernateをいじる(2)

今回は、このようなドメインモデルを使います。

大学通信教育の履修管理システムです。

どの科目を、いつから勉強を始めて、いつレポートを出して、単位修得試験を受験して、それぞれの評価はどうで、単位をいくつ取ったか…ということを管理します。

クラスが5つ。関連は1対1と、1対多の2種類があります。

Hibernateのサンプルとしては、継承がないのが残念ですが、これは後でいくらでも拡張できるでしょう。

例えば、Subject(科目)には、必修/選択必修/選択とか、一般教育科目/専門教育科目などの種類があります。継承のネタにはなりそうです。

今回は、初歩のサンプルですから、これで行きます。

2.Hibernateを使うためのアプローチ

Hibernateを使うためには、いくつかのモノが必要です。

まず、Hibernate自体の設定ファイルが必要です。

何らかのドメインモデルを、Hibernateを使って永続化するには、ドメインオブジェクト(もしくはテーブル)毎に、以下の種類のモノが必要となります。

  • JavaBeans(Study.class)
  • マッピングファイル(Study.hbm.xml)
  • RDBテーブル(Studyテーブル)

ところで、この3つのうち、何からどうやって作っていくか…には、いくつかのアプローチがあります。 (1)ドメインモデルありき つまりJavaBeansはあるので、それを元にテーブルとマッピングファイルを作っていきます。これを、Top-Downアプローチと言います。 とても、オブジェクト指向な感じですね。 このアプローチなら、XDocletでJavaBeansからマッピングファイルを作り、Hibernateの機能でマッピングファイルからテーブルを作ることが出来ます。 (2)テーブルありき テーブルは既にあるから、それを元にJavaBeansとマッピングファイルを作ります。これを、Bottom-Upアプローチと言います。 多くの開発プロジェクトは、これになりそうな気がします。 このアプローチなら、Middlegenというツールを使って作業を自動化できます。 (3)マッピングファイルから作ろう! 逆説的な気もしますが、マッピングファイルを先に作ります。そこから、JavaBeansとテーブルを作っていきます。これを、Middle-Outアプローチと言います。 「マッピングファイル=Hibernateで出来ること」ですから、Hibernateを骨の髄までしゃぶるなら、これかもしれません。 定義がしっかりしているだけに、このアプローチをベースにした、開発ツールとか作れそうですね。 (4)マッピングファイルを作ることが面倒だ! JavaBeansもテーブルもある。しかし、マッピングファイルだけない。だから、最後にマッピングファイルを作ろうというもの。これを、Meet-in-Middleアプローチと言います。 顧客にはテーブルで説明しないといけない、でも設計はオブジェクト指向で進んでいる…中途半端だけど、最もありそうなケースかもしれません。 今回は、既にドメインモデルがありますから、Top-Downアプローチを採ります。また、敢えてツールは使わず、手作業で進めます。 https://inoccu.com/blog/2005/10/23/214105.html

2005/10/23 18:28
← Hibernateをいじる(1)
Hibernateをいじる(3) →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。