この相関スレッドへのこの回答を参照すると、ehrhardt によって投稿されたトリックは正常に機能します。
しかし、複数のエンティティに参加する必要がある場合はどうすればよいですか? 例えば:
List<Person> peopleWithBooks = session.createSQLQuery(
"select {p.*}, {b.*}, {m.*} from person p, book b, magazine m where <complicated join>")
.addEntity("p", Person.class)
.addJoin("b", "p.books")
.addJoin("m", "p.magazines")
.addEntity("p", Person.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
Hibernate は最初の結合では集約しますが、2 番目の結合では集約しません (マガジン エンティティはグループ化されません)。
1 つの相関エンティティのみで参加するためのトリックや制限はありますか? また、サブエンティティを持つエンティティと結合する必要がある場合は? (私の目標は、選択したすべてのデータを 1 つのカスタム クエリだけで取得することです)