Hibernate版本4.3.5:
当我尝试急切地获取我定义为列表的两个关系时,我遇到了一些奇怪的行为。 使用普通查询加载实体非常好,但是一旦我尝试使用实体图, 我得到一个异常:MultipleBagFetchException:无法同时获取多个包
所以,我的问题是:为什么会发生这种情况,我该如何解决?
我的实体看起来像这样:
@Entity
@NamedEntityGraph(name = "Person.loadAll",
attributeNodes = {
@NamedAttributeNode(value = "managedPersons", subgraph = "personName"),
@NamedAttributeNode(value = "incidents", subgraph = "incidentNumber")},
subgraphs = {
@NamedSubgraph(name = "personName",
attributeNodes = {
@NamedAttributeNode("name")
}),
@NamedSubgraph(name = "incidentNumber",
attributeNodes = {
@NamedAttributeNode("number")
})
})
public class Person {
private long id;
@ManyToOne
@JoinColumn(name = "managerid")
private Person manager;
@OneToMany(mappedBy = "manager", fetch = FetchType.EAGER)
@OrderBy("name ASC")
private List<Person> managedPersons;
@OneToMany(mappedBy = "caller", fetch = FetchType.EAGER)
@OrderBy("number ASC")
private List<Incident> incidents;
//some more stuff...
}