Возможно ли для Hibernate получить два уровня наборов одним выбором?
У меня есть три лица:
@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
}
Когда я использую Criteria API из JPA для получения A, Hibernate сначала выбирает только A, затем для каждого A, все B и, наконец, для каждого B все C.
Возможно ли принудительное получение с одним выбором, который теоретически возможен?
2 ответа
Решение
Hibernate не поддерживает выборку нескольких коллекций. Посмотрите здесь.
Кстати, вам действительно нужно, чтобы эти коллекции были загружены?
Похоже, невозможно без internal iteration
,
В таких случаях я хотел бы предложить Hibernate Native Sql запрос.