Как я могу установить Hibernate FetchType не на Eager или Lazy, а на «none», чтобы он НЕ загружал сам материал? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть класс Hibernate, в котором есть такие поля:

@OneToMany(
    orphanRemoval = true,
    mappedBy = "others",
    cascade = CascadeType.ALL,
fetch = FetchType.LAZY)
private Set<AnotherEntity> otherEntities;

У нас отложенная загрузка, поэтому он не загружает все сразу. Но я хочу, чтобы он вообще не загружал материал - если я хочу его загрузить, я буду использовать (Hibernate) запрос, который получает всю необходимую информацию. Если я загружаю только основные объекты, с ними ничего не должно быть загружено.

entity.getOtherEntities () должно возвращать ноль - даже если есть данные.

Возможно ли как-то этого добиться

1 Ответ

0 голосов
/ 16 октября 2019

Существует несколько примерных опций:

  1. Вы можете использовать проекцию (интерфейс с геттерами и сеттерами для полей, которые вам нужно выбрать). Здесь пример.
  2. Вы можете вывести поля в суперкласс (используя MappedSuperclass) и использовать его для выборки только необходимых данных.
  3. Используя EntityManager.createQuery выможете указать поля, используя jpql, тогда будут выбраны только объявленные поля.
...