Вы можете создать новый метод в своем хранилище, который использует join fetch
для извлечения связанных сущностей, например,
@Query("SELECT spp FROM ScolProgressionPopulation spp JOIN FETCH spp.progressions")
public List<ScolProgressionPopulation> findAllWithProgressions();
Другой способ - добавить аннотацию @Transactional
к методу в вашем хранилище. (тогда это не может быть интерфейс), он также может работать с методом на ваш взгляд. Вам, вероятно, нужно вызвать initialize
для всех коллекций прогрессии, что не очень эффективно, так как может создать много запросов к БД.
@Transactional
public List<ScrolProgressionPopulation> findAllWithProgressions() {
val spps = findAll();
for(ScrolProgressionPopulation spp: spps) {
Hibernate.initialize(spp.getProgressions();
}
return spps;
}
Редактировать: Если вы не хотите инициализируйте все элементы, вы можете сделать что-то вроде этого
@Transactional
public void initializeProgressions(ScrolProgressionPopulation spp) {
Hibernate.initialize(spp.getProgressions());
}
и вызывать это по требованию.