我对使用 spring-data-jpa 很陌生,但它看起来很有希望。我用它来制作我的应用程序中的所有存储库,如下所示:
public interface CustomerRepository extends JpaRepository<Customer, Integer>, JpaSpecificationExecutor<Customer>
我看到有一个方法调用findAll(Specification<T>)
来进行自定义搜索。要调用它,你应该实现
public Predicate toPredicate(Root<T> root,
CriteriaQuery<?> q, CriteriaBuilder cb)
我对如何制作谓词感到非常困惑。我尝试使用Spring上的示例
public static Specification<Customer> isLongTermCustomer() {
return new Specification<Customer>() {
Predicate toPredicate(Root<T> root, CriteriaQuery<?> query,
CriteriaBuilder builder) {
LocalDate date = new LocalDate().minusYears(2);
return builder.lessThan(root.get(Customer_.createdAt), date);
}
};
我不明白从哪里来Customer_.createdAt
。任何帮助,将不胜感激:)