Присоединение FetchMode не имеет значения для отношений ManyToMany в весенних репозиториях JPA
Я пытаюсь сделать это:
//...
class Person {
@ManyToMany(fetch = FetchType.EAGER)
@Fetch(FetchMode.JOIN)
private Set groups;
//...
}
это генерирует n + 1 запросов, когда я делаюpersonRepository.findAll();
через репозиторий Spring JPA, как будто я нене имеет@Fetch
задавать. (Один запрос сначала для получения всех людей, а затем один запрос для каждого человека для получения групп).
С помощью@Fetch(FetchMode.SUBSELECT)
работает, хоть! Он генерирует только 2 запроса. (Один для всех, а затем один для групп). Так гибернация реагирует нанемного Получить параметры, только не.JOIN
Я также пытался удалитьEAGER
доставать без удачи.
//...
class Person {
@ManyToMany()
@Fetch(FetchMode.JOIN)
private Set groups;
//...
}
Я использую Spring JPA, и это код для моего хранилища:
public interface PersonRepository extends JpaRepository {
}
JOIN просто не работает через Spring JPA, или я делаю что-то не так?