Возможно ли для 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 не поддерживает выборку нескольких коллекций. Посмотрите здесь.

Кстати, вам действительно нужно, чтобы эти коллекции были загружены?

Hibernate не может одновременно получать несколько пакетов

Похоже, невозможно без internal iteration,

В таких случаях я хотел бы предложить Hibernate Native Sql запрос.

Другие вопросы по тегам