2

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

4

1 に答える 1

4

Customer_Hibernate Metamodel generatorなどの特別なツールによって生成される必要がある JPA 2.0 静的メタモデルから来ています。

静的メタモデルを生成したくない場合は、代わりに次を実行できます。

return builder.lessThan(root.<LocalDate>get("createdAt"), date); 
于 2011-12-26T09:05:47.223 に答える