【问题标题】:How make multi fields filter with JpaRepository and keep pagination如何使用 JpaRepository 进行多字段过滤并保持分页
【发布时间】:2021-03-19 06:43:22
【问题描述】:

我想用 JpaRepository 进行多字段过滤,但我需要保持分页(Page)。

我尝试了以下方法:

Page<Group> getAllByOrganizationAndIdNotInAndLocation_Id(Organization organization, Collection<Long> id, Long location_id, Pageable pageable);

但是,在某些情况下,我没有收到所有预期变量,并且查询无法按预期工作

【问题讨论】:

  • 您能否澄清一下“在某些情况下,我不能收到所有需要的变量,并且此查询无法按我的需要工作。”是什么意思?
  • 你写你尝试过类似的东西,是你尝试过的还是不是?你能提交一个最小的工作示例吗?

标签: java spring-boot spring-data-jpa


【解决方案1】:

当变量是可选的时,您需要处理它们的缺失。您需要动态创建查询。 在 Spring Data JPA 中,您有三个选项:

  • 标准 API
  • 查询DSL
  • 示例查询

您可以在此处阅读更多内容:Dynamic spring data jpa repository query with arbitrary AND clauses

【讨论】:

    【解决方案2】:

    您可以将此库与 Spring 的 Pageable 结合使用:https://github.com/turkraft/spring-filter

    它将让您运行搜索查询,例如:

    /search?filter= 平均(收视率)> 4.5 brand.name (“奥迪”、“路虎”)(年> 2018 公里 50000) 和颜色 : '白色' 意外是空的

    Spring 的 Pageable 可以让您使用 &amp;page=34&amp;size=20 进行分页

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 2018-12-25
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 2014-08-09
      相关资源
      最近更新 更多