-6ren">
gpt4 book ai didi

java - 我可以将 @Query 定义与 Spring Data JPA 存储库方法中的规范结合起来吗?

转载 作者:IT老高 更新时间:2023-10-28 13:52:11 25 4
gpt4 key购买 nike

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

@Query(value="SELECT e from EMPLOYEE where firstName <> ?1")
public Page<Employee> findEmployeeBySomethigFancy(String firstName, Pageable pageable, Specification<Employee> emp);

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

最佳答案

首先,您应该阅读 Spring blog post .

第二,根据 JpaSpecificationExecutor 接口(interface),您的存储库应实现,以下方法采用 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)

所以,你不能混合 @QuerySpecification 定义.

但是,由于您可以表达 firstName <> ?1条件使用 Specification并且因为您可以根据需要组合尽可能多的规范,所以您可以重写整个 @Query使用 Specification仅限(s)。

关于java - 我可以将 @Query 定义与 Spring Data JPA 存储库方法中的规范结合起来吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26379522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com