JPA标准API - 与Spring Data JPA规范中的列表匹配

lev*_*rov 20 jpa criteria-api spring-data

我想创建一个规范,将一个用户对象的组ID与一个id列表相匹配.我正在考虑使用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);
    }
  };
}
Run Code Online (Sandbox Code Playgroud)

如果我不在,我怎么办呢?

rch*_*ukh 35

是否要创建一个规范,该规范匹配具有组ID的所有用户,这些用户在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);
        }
    };
}
Run Code Online (Sandbox Code Playgroud)