当前位置: 首页 > 面试题库 >

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

左丘耀
2023-03-14
问题内容

是否可以@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代替。然后,你可以根据需要组合任意多个规格。



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

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

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

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

  • 我正在使用100个实体(使用JHipster)设置一个新的Spring Boot API,我的问题是:鉴于我有一组存储库层方法,我希望我的所有存储库都能够调用这些方法。 我已经尝试制作所有接口来扩展('RepositoryQuery'是我默认的自定义接口名称后缀),然后使用特定于实体的类。请注意,所有的类扩展了一个泛型实现类,名为。 请注意,给定正则表达式中的“.*”代表我的持久实体集中的任何实体

  • 在我的项目中有几个实体具有相同的属性(对于示例'name'),所以,有可能创建一个存储库,其中使用自定义的select(实体)?因此,我从JpaRepository扩展了我的存储库,我扩展了MyCustomJpaRepository,MyCustomJpaRepository也扩展了JpaRepository,使其能够从JpaRepository授予基本功能? TKS