Не всегда рекомендуется менять fetchType
, если вы не уверены, что вам всегда нужно загружать эту связь.
Возможно, вам следует рассмотреть возможность использования графов сущностей , которые позволят вам извлекать ваш пользовательский объект и его группы при необходимости.
Например,
@NamedEntityGraphs({
@NamedEntityGraph(
name = "User.groups",
attributeNodes = {
@NamedAttributeNode(value = "groups")
})
})
Затем вы можете добавить граф сущностей в свой метод репозитория, как показано ниже, чтобы получить пользователя и его группы
@EntityGraph("User.groups")
List<User> findUserByEmail(String email);
РЕДАКТИРОВАТЬ:
В качестве альтернативы, если все, что вы хотите сделать в коде, это получитьгруппы пользователей, то вы можете создать запрос JPA, чтобы просто выбрать эти группы, а не большой граф сущностей, который является пользователем и его группами.
Например,
@Query("SELECT user.groups FROM User user WHERE user.email = :email")
List<Group> findGroupsUserEmail(@Param("email") String email);