Извлечение ElementCollecion из Hibernate на основе условия - PullRequest
1 голос
/ 11 марта 2020

У меня есть класс с именем User, и у него есть коллекция элементов groups, как показано ниже:

public class User {

    @ElementCollection
    @CollectionTable(name = "user_groups", joinColumns = @JoinColumn(name = "id"))
    private Set<String> groups;

    //Other fields
}

Теперь мне нужно получить список пользователей на основе имени группы. Запрос выглядит примерно так:

@Query("select distinct user from User user " +
        "left join fetch user.groups groups " +
        "where :groupName IN groups")
List<User> findUsersByGroupName(@Param("groupName") String groupName);

Это работает нормально, но в извлеченных User объектах я получаю только одну группу (которую я передаю). Мне нужны все группы User в выбранных объектах. Как я могу сделать это эффективно? Я пытался использовать elements и member of, но, поскольку у меня много пользователей, выполнение запроса занимает много времени (в минутах).

...