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