我正在尝试在Spring Data JPA中实现分页功能。
我是referring this博客
我的 Controller 包含以下代码:

 @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条记录???
还有其他我可以引用的分页示例吗?

最佳答案

我上周见过类似的问题,但找不到它,所以我将直接回答。

您的问题是您指定参数太晚了。 Pageable以下列方式工作:创建具有某些属性的Pageable对象。您至少可以指定:

  • 页面大小,
  • 页码,
  • 排序。

  • 因此,假设我们有:
    PageRequest p = new PageRequest(2, 20);
    

    上面传递给查询的内容将过滤结果,因此仅返回第21到第40的结果。

    您不对结果应用Pageable。您将其与查询一起传递。

    编辑:

    不推荐使用PageRequest的构造方法。使用Pageable pageable = PageRequest.of(2, 20);

    关于java - 在Spring Data JPA中创建分页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40714707/

    10-09 00:41