Hibernate Native SQL 查询在连接中检索多个实体

fl4*_*l4l 5 java hibernate native-sql

参考这个相关线程的答案,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();
Run Code Online (Sandbox Code Playgroud)

Hibernate 聚合第一个连接,但不聚合第二个(杂志实体未分组)。

有什么技巧或者有限制只能加入一个相关实体吗?如果我必须加入具有子实体的实体?(我的目标是仅使用一个自定义查询来检索所有选定的数据)