Hibernate:使用实体图时的MultipleBagFetchException

时间:2014-06-11 07:59:46

标签: java hibernate

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...
}

0 个答案:

没有答案