Specification<PlatformCoupon> specification = new Specification<PlatformCoupon>() {
@Override
public Predicate toPredicate(Root<PlatformCoupon> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
List<Predicate> list = new ArrayList<Predicate>();
if (0 != status) {
list.add(criteriaBuilder.equal(root.get("status").as(Long.class), status));
}
// 大于等于
list.add(criteriaBuilder.greaterThanOrEqualTo(root.get("kilometre").as(Double.class), kilometre));
// 小于等于
list.add(criteriaBuilder.lessThanOrEqualTo(root.get("kilometre").as(Double.class), kilometre));
CriteriaBuilder.In<Long> in = criteriaBuilder.in(root.get("id"));
for (MemberCoupon memberCoupon : memberCouponList) {
in.value(memberCoupon.getCouponId());
}
list.add(in);
Predicate[] p = new Predicate[list.size()];
criteriaQuery.where(criteriaBuilder.and(list.toArray(p)));
criteriaQuery.orderBy(criteriaBuilder.desc(root.get("id")));
return criteriaQuery.getRestriction();
}
};
jpa中Specification的用法记录
最新推荐文章于 2023-07-12 23:21:22 发布