私は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 つの選択でフェッチを強制することは可能ですか?