Hibernate不允许您获取多个Bags,因为它最终将获取笛卡尔积。
您要么创建集合集,要么创建列表,然后面对笛卡尔积性能问题。
如果您已经具有INNERJOIN关系,则可以简单地从最内层的Child直到根目录进行获取,然后重新组装结构。由于查询如下所示,因此效率更高:
select t from Topic t join t.subject s join s.branch b
EntityGraphBuilder,我在我的文章中描述很容易适应你的使用情况。

Hibernate不允许您获取多个Bags,因为它最终将获取笛卡尔积。
您要么创建集合集,要么创建列表,然后面对笛卡尔积性能问题。
如果您已经具有INNERJOIN关系,则可以简单地从最内层的Child直到根目录进行获取,然后重新组装结构。由于查询如下所示,因此效率更高:
select t from Topic t join t.subject s join s.branch b
EntityGraphBuilder,我在我的文章中描述很容易适应你的使用情况。