봄 데이터 사양은 조금 자세한 비교 Querydsl
public CustomerSpecifications {
public static Specification<Customer> customerHasBirthday() {
return new Specification<Customer> {
public Predicate toPredicate(Root<T> root, CriteriaQuery query, CriteriaBuilder cb) {
return cb.equal(root.get(Customer_.birthday), today);
}
};
}
public static Specification<Customer> isLongTermCustomer() {
return new Specification<Customer> {
public Predicate toPredicate(Root<T> root, CriteriaQuery query, CriteriaBuilder cb) {
return cb.lessThan(root.get(Customer_.createdAt), new LocalDate.minusYears(2));
}
};
}
}
에 비교이
QCustomer customer = QCustomer.customer;
LocalDate today = new LocalDate();
BooleanExpression customerHasBirthday = customer.birthday.eq(today);
BooleanExpression isLongTermCustomer = customer.createdAt.lt(today.minusYears(2));
당신은 당신이 선택 할 수 있습니다 복잡한 쿼리를 처리하기 위하여려고하는 경우 Querydsl. 더 컴팩트하므로 크기가 더 좋아질 것입니다.
이 답변은 내가 Querydsl의 관리자이기 때문에 편향되어 있습니다.