我使用org.springframework.data.jpa.domain.Specification
并匿名实施toPredicate(…)
:
Someclass {
public static Specification<SomeObject> getSth() {
return Specifications.where(mainFilter()).and(secondFilter())
}
private static Specification<SomeObject> mainFilter() {
// …
}
private static Specification<SomeObject> secondFilter() {
return new Specification<SomeObject>() {
@Override
Predicate toPredicate(Root<ReportOrder> root,
CriteriaQuery<?> query, CriteriaBuilder cb) {
JoinMap.
// … blah blah blah …
query.distinct();
}
}
}
}
我有否定secondFilter()
的问题。如果我只对secondFilter()
使用repository.findAll(…)
,我会得到一个元素。我希望如果我使用Specifications.not(secondFilter())
我会得到除了一个以外的所有,但我会得到所有。