一个Spring Data JPA存储库方法上结合@Query定义和规范吗?

是否可以@Query在一种存储库方法中同时使用注释和规范?例如,我想要一个这样的方法:

@Query(value="SELECT e from EMPLOYEE where firstName <> ?1")

public Page<Employee> findEmployeeBySomethigFancy(String firstName, Pageable pageable, Specification<Employee> emp);

是否可以或应该将整个查询构建为a Predicate并删除@Query注释?

回答:

首先,你可能想先阅读此博客文章。其次,根据JpaSpecificationExecutor存储库应实现的接口,可以使用“规范”运行以下查询:

  • count(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)

因此,你无需将s @Query(或查询方法)混合使用Specification。

你可以表达这种情况:

firstName <> ?1

使用一个Specification代替。然后,你可以根据需要组合任意多个规格。

以上是 一个Spring Data JPA存储库方法上结合@Query定义和规范吗? 的全部内容, 来源链接: utcz.com/qa/416687.html

回到顶部