2012-12-18 5 views
7

사용자 목록의 ID와 일치하는 사용자 객체의 그룹 ID와 일치하는 사양을 만들고 싶습니다. isMember (코드에서와 같이)를 사용하려고 생각했지만 메서드는 목록을 가져 가지 않습니다.JPA criteria 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

groupIds 목록에있는 그룹 ID를 가진 모든 사용자와 일치하는 사양을 만들겠습니까?

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

그렇다면, 당신은 (IN 절 SQL을 사용합니다) 같은 것을 사용할 수 있습니다