今回のプロジェクトに限った話ではありますが、
Object-Relationalではなく、Object-ResultSetマッピングで十分だと思っています。
データを検索するときには複数のテーブルを結合することが多い。
その場合、検索結果として、各結合対象テーブルに対応したオブジェクトが関連づいているよりも、
取得対象のデータを並べたDTOがひとつあるほうがわかりやすい。
また、テーブルが大きすぎて、全データを取得するのが望ましくないケースもある(テーブル設計が悪い、という気もします。。)
今回のプロジェクトでは、O/Rマッピングフレームワークは自作しました。
ResultSetからDTOへの変換のみをサポートするシンプルなものにしています。
変換に必要な情報はDTOにアノテーションで書きます。SQLはDAOに手書き。