2

私は3つのエンティティを持っています:

@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 を取得します。

理論的には可能である 1 つの選択でフェッチを強制することは可能ですか?

4

2 に答える 2

2

Hibernate doesn't support well fetching multiple eager collections. Take a look here.

Btw do you really need those collection as eagerly loaded?

Hibernate cannot simultaneously fetch multiple bags

于 2013-03-18T16:05:07.543 に答える
0

なしでは不可能のように聞こえinternal iterationます。

そのような場合、Hibernate Native Sql queryを提案したいと思います。

于 2013-03-18T16:00:23.690 に答える