Несколько JOIN FETCH в одном запросе 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
Я нашел статьи об этой ошибке, но эти статьи только описывают ситуацию, когда в одном объекте объединяются две коллекции. Моя проблема немного другая, и я не знаю, как ее решить.
Это можно сделать в одном запросе?
Извините за мой плохой английский, но я обычно говорю на другом языке