![](/img/trans.png)
[英]How to combine distinct and sort in spring data jpa specification query with joins
[英]Can I combine a @Query definition with a Specification in a Spring Data JPA repository method?
是否可以在一种存储库方法中同时使用@Query
注释和规范? 例如,我想要一个这样的方法:
@Query(value="SELECT e from EMPLOYEE where firstName <> ?1")
public Page<Employee> findEmployeeBySomethigFancy(String firstName, Pageable pageable, Specification<Employee> emp);
是否有可能或者我应该将整个查询构建为Predicate
并删除@Query
注释?
首先,您应该阅读这篇Spring 博客文章。
其次,根据JpaSpecificationExecutor
接口,您的存储库应该实现,以下方法采用Specification
参数:
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)
因此,您不能将@Query
定义与Specification
混合使用。
但是,由于您可以使用Specification
来表达firstName <> ?1
条件,并且因为您可以根据需要组合任意数量的Specification
,所以您可以@Query
使用Specification
重写整个@Query
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.