JPAとデータベース設計

昨日に引き続きJPAの宣伝?です。

JPAってデータベース設計に興味があるんだけどなかなか実際に設計する機会に恵まれないといった人にとって結構いい教材なんじゃないかなぁと思います。

HibernateはエンティティクラスからDDLを生成する機能をもっているのですが、これがとても参考になるわけです。例えば、多対多をどう表すかとか、一対一を表すのにPKをFKとする方法もあるとか、サブタイプを表現するのにいくつか方法があるとか。このあたり、図で書かれた説明を見るより実はDDLをみたほうが納得がいくんじゃないかと思います。
あと、SQLをログ出力できるのでどういうクエリが発行されるかをみるのも結構おもしろいです。楽観的排他制御のクエリとか、サブタイプまわりのクエリとか。採番なんかもいろいろ手法があって、別トランザクションで実行されていたりとかおもしろいですね。
ほかには、JPA使うとRPGとか(たぶん)COBOLにでてくるコントロールブレイクといった考え方とかいらないじゃんとか。

というわけでいろいろ勉強になる点が多いです。