関連を試した。
いわゆる、Order テーブルと OrderDetail テーブルの関係。1 対 多
普通に動いていました。使えそうな感じがちょっとしますね。

  • hibernate.cfg.xml で複数 DB にも対応
  • 実行時依存ライブラリ(使用する機能によって他にも必要になる)
    • cglib2.jar (2.0rc2)
    • commons-collections.jar (2.1)
    • commons-dbcp.jar (1.1)
    • commons-logging.jar (1.0.3)
    • dom4j.jar (1.4)
    • odmg.jar (3.0)
    • xalan.jar (2.4.0)
    • commons-lang(Middlegenソースコードを生成した場合)
  • Oracle の Dialect は 9i とそれ以外では別(Oracle9Dialect / OracleDialect)
  • Lifecycle を implements しておけば、サーブレットフィルターのように select / insert / update / delete の実行直後に呼んでくれるメソッドが追加される


hibernate.hbm.xml だが、下記のような記述が可能らしいので
Configuration を初期化する箇所で *.hbm を追加してもいいかも。
ちょっといけてない気もするけども。

Configuration cfg = new Configuration()
.addFile("hoge.hbm.xml")
.addFile("moge.hbm.xml");


for update

Hoge hoge = (Hoge)session.get(Hoge.class, id, LockMode.UPGRADE);

hsqldb では普通の SELECT 文でした。


hibernate の開発方法としてある

  • Top-down
  • Bottom-up
  • Middle-out
  • Meet-in-the-middle

Bottom-up が一番楽かな?
Top-down は生成される ddl ファイルがシンプルすぎて
いちいち書き換えが必要だし Middle-out は面倒くさくて
マッピングファイルを先に作るなんて考えられないし
GUI があればいけるかもしれないが、ddl の問題がある)
Meet-in-the-middle ・・・これは
他の O/R マッピングツール使ってて移行ということかな?
でも、これなら素直なテーブル構成と
JavaBeans なら Middlegen で自動生成できますね。
0 からと考えるとこれも面倒だし。