如何在一个JPQL查询中使用多个JOIN FETCH

28 浏览
0 Comments

如何在一个JPQL查询中使用多个JOIN FETCH

我有以下实体:

public class Category {
   private Integer id;
   @OneToMany(mappedBy = "parent")
   private List topics;
}
public class Topic {
   private Integer id;
   @OneToMany(mappedBy = "parent")
   private List posts;
   @ManyToOne
   @JoinColumn(name = "id")
   private Category parent;
}
public class Post {
   private Integer id;
   @ManyToOne
   @JoinColumn(name = "id")
   private Topic parent;
   /* Post fields */
}

我想使用JPQL查询获取所有连接了topicsposts的类别。我编写了以下查询语句:

SELECT c FROM Category c
JOIN FETCH c.topics t
JOIN FETCH t.posts p WHERE 

但是我收到了错误信息

org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags

我找到了关于这个错误的文章,但这些文章只描述了一个实体中有两个要连接的集合的情况。我的问题有些不同,我不知道如何解决。

有可能在一个查询中实现吗?

0