取我有以下實體:多加入一個JPQL查詢
public class Category {
private Integer id;
@OneToMany(mappedBy = "parent")
private List<Topic> topics;
}
public class Topic {
private Integer id;
@OneToMany(mappedBy = "parent")
private List<Posts> posts;
@ManyToOne
@JoinColumn(name = "id")
private Category parent;
}
public class Post {
private Integer id;
@ManyToOne
@JoinColumn(name = "id")
private Topic parent;
/* Post fields */
}
,我想取得與參加專題所有類別和使用JPQL查詢加盟的帖子。我寫了查詢象下面這樣:
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
我發現這個錯誤的文章,但這些文章只是介紹情況下在一個實體的兩個集合加入。我的問題有點不同,我不知道如何解決它。
可以在一個查詢中做?
對不起我的英語不好,但我通常在其他語言說話
在爲此文章中說過:「儘管簡單地使用索引列表或集合總是更好的」。如何創建索引列表? – Zaprogramowany
這是另一個問題的主題,我相信它已經在SO上得到解答。 –