2

我有三个实体:

@Entity
@Table(name="a")
class A {

  @Id
  Long id;

  @OneToMany(fetch = FetchType.EAGER)
  @JoinColumn(name = "a_id")    
  Set<B> bs;

  // ... other fields
}

@Entity
@Table(name = "b")
class B {

  @Id
  Long id;

  @OneToMany(fetch = FetchType.EAGER)
  @JoinColumn(name = "c_id")
  Set<C> cs;

  // ... other fields
}

@Entity
@Table(name = "c")
class C {

  @Id
  Long id;

  // ... other fields
}

当我使用 JPA 的 Criteria API 来获取 A 时,Hibernate 首先只获取 A,然后是每个 A、所有 B,最后是每个 B 所有 C。

是否可以通过一个理论上可能的选择来强制获取?

4

2 回答 2

2

Hibernate 不支持很好地获取多个 Eager 集合。看看这里。

顺便说一句,你真的需要那些急切加载的集合吗?

Hibernate 不能同时获取多个包

于 2013-03-18T16:05:07.543 回答
0

听起来好像没有internal iteration.

在这种情况下,我想建议Hibernate Native Sql query

于 2013-03-18T16:00:23.690 回答