2016-11-21 87 views
0

我正试图在Spring Data JPA中实现分页功能。 我referring this博客 我的控制器包含下面的代码:在Spring数据中创建分页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"; 
    } 

吾道如下:

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

我能够显示前20条记录,我怎么显示未来20 ??? 有没有其他的分页示例,我可以参考?

+0

您引用的博客也有一个部分,可让您指定页码。我会想象那将是你想要使用的。 – Makoto

+0

是的,我看到了,但它是Spring MVC,我想在Spring Data JPA中实现它。我如何将它修改为Spring数据JPA?/ – Tejas

+0

...如果您一直在使用Spring Data一直关注整个教程,该教程是面向Spring MVC的,那么为什么不试试呢?或者你已经试过了吗?如果你这样做了,那么可以显示你尝试的代码,你预期会发生什么,以及发生了什么? – Makoto

回答

2

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

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

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

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

PageRequest p = new PageRequest(2, 20); 

上述传递给查询将筛选结果从21所以只有结果40将被退回。

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