3
在其中一个项目中,我们使用Spring Data。现在查询变得越来越复杂,我们考虑添加Spring Data Specification或QueryDSL。Spring Data Specification或QueryDSL
然而,不确定最好的前进方向。我认为他们都有相同的目的。是否有人比其他人推荐?
感谢
在其中一个项目中,我们使用Spring Data。现在查询变得越来越复杂,我们考虑添加Spring Data Specification或QueryDSL。Spring Data Specification或QueryDSL
然而,不确定最好的前进方向。我认为他们都有相同的目的。是否有人比其他人推荐?
感谢
春数据规格有点冗长相比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的维护者。