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
どこから来たのかわかりません。どんな助けでも大歓迎です:)