S2JDBC

試してみました。
S2Daoは画面毎に結合したSQLの結果が入るDTOを用意する、many to one以外を実現しようとすると自分たちで仕組みをする必要があった、規約を知っていなければいけないという不満点がありましたが、S2JDBCにはその不満は解消され、S2Daoの良いところであった2way sqlにも対応しているし、簡単なSQLであればJavaのメソッドを直感的に呼び出せばほとんど自動生成してくれるということでS2Daoよりも良いのかなという印象を持ちました。

S2JDBCを使うとS2Daoを使っていた時よりEntityの設計が変わりますね。
S2Daoの場合はEmployeeテーブル(多のテーブル)にはDepartment(1のテーブル)のIDを持たせていました。例えばdepartmentIdという名前で。
S2JDBCの場合はEmployeeテーブル(多のテーブル)にはDepartment(1のテーブル)のエンティティを持たせるというHibernateを使っていた時の設計ができます。しかもEnployeeを検索したら勝手にDepartmentオブジェクトを含めた状態で検索されるのもHibernateと同じになってとても良い感じです。更にLazy load問題も解決してくれているとのことですね。

今下記のことで悩んでいます。
S2JDBCチュートリアルをみると、one to many / one to one / many to oneに対応していそうですが、many to many を実現するにはどうすれば良いのでしょう?現実世界でmany to manyを実現したい場合はたくさんあるはずなので、是非知っておきたいです。