2012-12-18 46 views
7

我想要創建一個與ID列表相匹配的用戶對象組標識的規範。我正在考慮使用isMember(就像在代碼中一樣),但該方法不會接受列表。JPA標準API - 與Spring數據中的列表匹配JPA規範

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); 
    } 
    }; 
} 

如果我關了,我該怎麼辦呢?

回答

17

您是否想創建一個與所有具有group 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); 
     } 
    }; 
}