Вызов Rest не извлекает сущности подкласса, которые существуют - PullRequest
0 голосов
/ 19 сентября 2019

Я получаю список объектов из базы данных, используя репозиторий JPA.Если я не получу доступ к подклассам, они будут нулевыми.Если я просто пойду и покажу их количество в лог-файле, они не будут нулевыми.Я не уверен, почему это происходит.

В приведенном ниже коде, если я закомментирую 'for loop', policy.getFields () и policy.getFieldGroups будут нулевыми.Почему это происходит?

    log.debug("Request to get all Policies");
    List<Policy> policies = policyRepository.findAll();
    for (Policy policy : policies) {
        log.info("Policy fields group size:{}", policy.getFieldGroups().size());
        log.info("Policy fields size:{}", policy.getFields().size());
    }

    return policies;

1 Ответ

0 голосов
/ 19 сентября 2019

Это называется отложенной загрузкой (или отложенной инициализацией), что означает, что отношения коллекции будут извлечены, когда они собираются использоваться.Это совершенно нормальное поведение.Если вам это нужно каждый раз, вы можете изменить загрузку этого отношения на EAGER, чтобы они всегда выбирались.

Это можно сделать, добавив @OneToMany(fetch = FetchType.EAGER) в поля, которые необходимо загрузить (здесь группы полей иполя)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...