小编Zap*_*any的帖子

一个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 */
}
Run Code Online (Sandbox Code Playgroud)

我希望使用JPQL查询获取所有已加入主题的类别并加入帖子.我写的查询如下:

SELECT c FROM Category c JOIN FETCH c.topics t JOIN FETCH t.posts p WHERE ...
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
Run Code Online (Sandbox Code Playgroud)

我发现了有关此错误的文章,但这些文章仅描述了在一个实体中要加入的两个集合的情况.我的问题有点不同,我不知道如何解决它.

可以在一个查询中执行吗? …

java hibernate jpa join jpql

26
推荐指数
2
解决办法
5万
查看次数

标签 统计

hibernate ×1

java ×1

join ×1

jpa ×1

jpql ×1