2007/05/25

Hibernateを使ってみた

Hibernateにほんのちょっとだけ触れてみました。
まだまだこれから踏み込んでみようと思うのですが、備忘録もかねてとりあえず投稿。

■概要
HibernateはO/Rマッピングフレームワーク。
大きくは以下の4つのリソースに分類される。
・Hibernateの構成ファイル(hibernate.cfg.xml)
 ⇒RDBMSへの接続情報、マッピングファイルのローケーションを管理
・マッピングファイル(xxx.hbm.xml)
 ⇒POJOとRDBMSスキーマとの関係を定義
・POJO
 ⇒エンティティ。.NETだとDataSetに相当。
・DAO
 ⇒データアクセスオブジェクト。


■感想:ADO.NETとの比較
.NETと比較すると、総合的にADO.NETの方が楽。
Hibernateに慣れていないせいもあるのでしょうけど、何かと実装が面倒。
(Eclipse&Hibernateプラグインだと設定ファイルの設定が若干楽になるようだが)

あとはやっぱりDataSetって強力だなぁーと再認識。


■感想:いかがなものでしょう・・・?
スキーマのキーに対するHibernateのポリシーって・・・。

Hibernateではスキーマの主キーとビジネスキーは別だという考えが根本にあるようだ。
ここで言っている主キーはRDBMS上のPrimaryKey。ビジネスキーとはビジネス上のデータをユニークにするキー。Hibernateは主キーは単一キーである事を推奨していて、はスキーマのキーはどんなスキーマであっても一つであるべきという考え方。つまり、Hibernateを使うなら全てのテーブルをシーケンスとか使ったID項目を主キーとするよう設計しなさい!と言ってる。さらにビジネスキーを主キーとするようなテーブル設計はレガシーシステムだ!とも言ってる。おいおい・・・。マジかよ・・・。

なので基本的な機能は全て単一キーが前提になってました。(複合キーの機能はデフォルトでない)一応複合キーの為の機能も提供されてました。Hibernate曰くレガシーシステム対応だそうです・・・。

正直Hibernateの思想でテーブル設計はできんだろーと思うんだけど・・・。

0 件のコメント: