Я только что начал использовать Hibernate в своем приложении. Также я использую репозиторий JPA для использования пользовательского запроса. У меня есть несколько объектов, которые имеют отношения между ними. Я использовал режим Fetch как «EAGER» в столбце join, а также с помощью Cache. Я заметил, что Hibernate делает несколько выборочных запросов для получения каждого объекта и не делает его в одном запросе.Hibernate: несколько запросов на выбор, сделанных с помощью режима Hibernate for Fetch. Eager
Ниже сущность:
@Entity
@Table(name = "entity_a")
public class EntityA implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
...
@OneToMany(fetch = FetchType.EAGER, mappedBy = "entity_a")
@JsonIgnore
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<EntityB> entityB = new HashSet<>();
Я выборка моего лица, как показано ниже, используя JPA пользовательские запросы:
EntityA entityA = entityARepository.findOneById(id);
Hibernate выдает запрос на выборку для вышеуказанного заявления.
Всякий раз, когда я делаю entityA.getEntityB()
, он выдает другой оператор select на EntityB. Как этого избежать. Как я могу получить оба объекта в одном элементе, используя Hibernate?
Спасибо! Использование аннотации Fetch сработало для меня. –