在春季数据 JPA 中创建分页

我正在尝试在Spring Data JPA中实现分页功能。我指的是这个博客我的控制器包含以下代码:

 @RequestMapping(value="/organizationData", method = RequestMethod.GET)
  public String list(Pageable pageable, Model model){
    Page<Organization> members = this.OrganizationRepository.findAll(pageable);
    model.addAttribute("members", members.getContent());
    float nrOfPages = members.getTotalPages();
    model.addAttribute("maxPages", nrOfPages);
    return "members/list"; 
  }

我的 DAO 如下:

@Query(value="select m from Member m", countQuery="select count(m) from Member m")
  Page<Organization> findMembers(Pageable pageable);

我能够显示前20条记录,我如何显示下一个20条记录???我还可以参考任何其他分页示例吗?


答案 1

Pageable 的构造函数已弃用,请改用:of()

Pageable pageable = PageRequest.of(0, 20);

答案 2

我上周看到了类似的问题,但找不到它,所以我会直接回答。

您的问题是指定参数为时已晚。 按以下方式工作:创建具有某些属性的对象。您至少可以指定:PageablePageable

  1. 页面大小,
  2. 页码
  3. 排序。

因此,让我们假设我们有:

PageRequest p = new PageRequest(2, 20);

上述传递给查询的内容将筛选结果,因此仅返回从第 21 个到第 40 个的结果。

你不申请结果。随查询一起传递它。Pageable

编辑:

的构造函数已弃用。用PageRequestPageable pageable = PageRequest.of(2, 20);


推荐