2005.05.23 · 技術と道具

Hibernateを試してみる

Seasar2に続き、Hibernate3を試してみました。

公式サイトのマニュアルと、バージョンは違うものの@ITの記事「Hibernateで理解するO/Rマッピング」を参考に、昨日、S2DAOで実験したGroupUnitとMemberの簡単なモデルで実験。

公式サイトのマニュアル(英語ですが)のサンプルソースを参考に、JavaBeansを2つ(GroupUnitとMember)、マッピングファイル、Hibernateの設定ファイルを作成。 それで・・・、

  • 単純なGroupのInsert
  • 単純なGroupのSelect(List)
  • N:1関連のSelect
  • Groupを持つMemberのInsert
  • 1:N関連のSelect
  • Memberが持っているGroupを変更後Update

といった内容の実験を行いました。

細かい部分の実験はやっていませんが、上記のシンプルな実験は、すべて成功。

お手軽なS2DAOと違ってきちんとしたマッピングファイルが必要になりますが、その分、機能は充実しています。1:N関連がサポートされているし、Groupを持つMemberのInsertの件も、RDB上での外部KEYを意識することなく(マッピングファイルには書く必要がありますが、プログラムでは意識不要)、対応できます。カッコイイ。

Updateの実験では、トランザクションの実験を兼ねてみました。これもcommit、rollbackとも整然と動いてくれます。ただ、rollbackしても同じSession内だと、Query使って再取得してもrollbackされていませんね。別Sessionにすると、ちゃんとrollbackされた内容が反映されます。

おそらく、マッピングファイルが肝だなぁと思いました。この文法がきっとHibernateで出来ることのすべてなんだろうし、真のOOD、OOPをやるために必要な機能は、おそらくすべて揃っているのだろうし・・・。全体の把握はなかなか大変でしょうが、把握しなければうまく使えないのではないかと。

昨日のS2DAOといい、今日のHibernateといい、永続化部分の実装を全部人間がやるのは、いまやナシなんだなと実感しました。

あと、公式サイトの設定ファイルサンプルをそのままコピペすると、動かすたびにDROP TABLEとCREATE TABLEされます。マッピングファイルからDDLを作れるわけですが、勝手にテーブルを消したり作ったりまでやっちゃいます。実験用のサンプルだからでしょうが、コピペするだけで中身を見ないと、ハマります。ご注意を。

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

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