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 件のコメント:
コメントを投稿