Spring DATA JPA Specification

org.springframework.data.jpa.repository.JpaSpecificationExecutor

Specification を使って以下のメソッドで動的クエリを生成できる。

long count(Specification<T> spec)

boolean exists(Specification<T> spec)

List<T> findAll(Specification<T> spec)

Page<T> findAll(Specification<T> spec, Pageable pageable)

List<T> findAll(Specification<T> spec, Sort sort)

T findOne(Specification<T> spec)

でも、@Query で、native Query の使用と、Specification を同時には使えない。