>俺はHibernateを使わずにDAO+リッチなORマッピング処理を自動生成する方法
>(Ruby On RailsのActiveRecordみたいなかんじかな)で開発するのが好きで、
>それを使ったプロジェクトでは実際に、生産性も保守性も高いと思うんだけど。。

私もこれに関しては死ぬほど悩んでいる。

hibernateでオブジェクトのグラフ構造とDBの表構造をマッチングするのはOK。これについては100%生産性が高いといえる。
しかし、真にドメインドリブンアーキテクチャを追求した場合、1次キャッシュによるユニットオブワークを最大限利用する必要がある(勝手にアップデートって言った方がいいか?)
これはドメインモデルの観点からすると非常に有意義な機能だが、「普通の開発者」にとっては理解しがたい機能のはず。(EJBやってればわかるんだろうけど)

1次キャッシュはhibernateの必須機能のため原則として無効化することはできないが、ラップすることでどうとでもできる。

で、結論としては開発者がユニットオブワークを理解できるのなら、hibernateを使えば良い。難しいようであればS2DaoやiBatisのようななんちゃってO/Rマッパーを使った方がいい。