API критериев JPA-соответствие списку в спецификациях JPA Spring Data

Я хочу создать спецификацию, которая соответствует код группы объекта пользователя в список идентификаторов. я думал об использовании isMember (как в коде), но метод не будет принимать список.

public static Specification<User> matchCompanyIdsList(final List<Long> groupIds){
  return new Specification<User>() {
    public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder){
      final Path<Group> group = root.<Group> get("group");
      return builder.isMember(company.<Long>get("id"), companyIds);
    }
  };
}

если я выключен, как бы я это сделал иначе?

1 ответов


вы хотите создать спецификацию, которая соответствует всем пользователям с идентификатором группы, которые находятся в списке groupsIds?

Если это так, вы можете использовать что-то вроде этого (который будет использовать SQL in предложение):

public static Specification<User> matchCompanyIdsList(final List<Long> groupIds){
    return new Specification<User>() {
        public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder){
            final Path<Group> group = root.<Group> get("group");
            return group.in(groupIds);
        }
    };
}