当前位置: 首页 > 知识库问答 >
问题:

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

锺离刚洁
2023-03-14
@Query(value="SELECT e from EMPLOYEE where firstName <> ?1")
public Page<Employee> findEmployeeBySomethigFancy(String firstName, Pageable pageable, Specification<Employee> emp);

是否可能或者应该将整个查询构建为谓词并删除@query注释?

共有1个答案

涂承运
2023-03-14

首先,你应该读一下这篇Spring博客文章。

其次,根据存储库应该实现的JPaspecificationExecutor接口,以下方法使用specification参数:

  • 计数(规格 special)
  • 列表 findAll(规格 specific)
  • page findAll(规格 spec,Pageable Pageable)
  • List findAll(规格 spec,Sort Sort)
  • T findOne(规格 special)
 类似资料:
  • 问题内容: 是否可以在一种存储库方法中同时使用注释和规范?例如,我想要一个这样的方法: 是否可以或应该将整个查询构建为a 并删除注释? 问题答案: 首先,您可能想阅读此博客文章。其次,根据存储库应实现的接口,可以使用“规范”运行以下查询: 因此,您不能混合使用(或查询方法)和s。 您可以表达这种情况: 使用一个代替。然后,您可以根据需要组合任意多个规格。

  • 问题内容: 是否可以在一种存储库方法中同时使用注释和规范?例如,我想要一个这样的方法: 是否可以或应该将整个查询构建为a 并删除注释? 问题答案: 首先,你可能想先阅读此博客文章。其次,根据存储库应实现的接口,可以使用“规范”运行以下查询: 因此,你无需将s @Query(或查询方法)混合使用Specification。 你可以表达这种情况: 使用一个代替。然后,你可以根据需要组合任意多个规格。

  • 我有非常类似于以前问的问题。除了在我的情况下查询是要找到多个和() sumQuota()工作正常 我希望重用“规范规范”来过滤来自网格控制的各种参数的结果。 你能建议任何解决方案或替代方案吗

  • 我有jpa存储库: 和客户规范 通常我是这样取记录的 现在我想按组计算 其中(复杂规范中的标准)按字段1、字段2、字段3分组; 如上所述,如何使用jpaRepository和Custom规范执行此GROUP BY和COUNT 注意:我可以像这样做完整计数 帮助我分组和计数。提前谢谢。

  • 使用Spring Boot应用程序。我有一个类UserService,我在其中创建了一个动态查询,根据请求参数具有多个or条件: 我有UserRepository接口,我需要执行这个查询。到目前为止,我使用了findById等JPA函数或@Query(“从事件中选择id”)。 如何将此查询从服务类传递到存储库并执行它?

  • 现在挣扎着与first存在,因为它已经加入了。有没有办法用规范来做到这一点。也因为有两个存在,这是否意味着我需要两个规范。我能在一个规范中实现它吗。