Java Hibernate本机SQL查询检索联接中的多个实体

Java Hibernate本机SQL查询检索联接中的多个实体,java,hibernate,native-sql,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.clas

引用相关线程的答案, 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();
List peopleWithBooks=session.createSQLQuery(
“从人物p、书籍b、杂志m中选择{p.}、{b.}、{m.},其中”)
.附录(“p”,个人类别)
.addJoin(“b”、“p.books”)
.addJoin(“m”、“p.Magazine”)
.附录(“p”,个人类别)
.setResultTransformer(标准.DISTINCT\u ROOT\u实体)
.list();
Hibernate聚合第一个联接,而不是第二个联接(库实体未分组)

只有一个相关实体加入有什么诀窍或限制吗?
如果我必须加入有子实体的实体?(我的目标是只通过一个自定义查询检索所有选定的数据)

没有人要说什么吗?