【问题标题】:Spring Data Pageable: Returns empty contentSpring Data Pageable:返回空内容
【发布时间】:2016-08-05 18:16:01
【问题描述】:

我是 Spring Data 和 Spring MVC 的新手,我不明白为什么我的内容是空的:

@RequestMapping(value="/pages", method=RequestMethod.GET)
@ResponseBody 
public Page<Client> contactsPages(@RequestParam int page, @RequestParam int size) {
    Pageable pageable = new PageRequest(page, size, new Sort("id"));
    Page<Client> pageResult = clientRepository.findAll(pageable);

    return pageResult;
} 

我测试url时json的结果是:

{"content":[],"last":true,"totalElements":2,"totalPages":1,"size":5,"number":1,"sort":[{"direction":"ASC","property":"id","ignoreCase":false,"nullHandling":"NATIVE","ascending":true}],"first":false,"numberOfElements":0}

如果你有使用 Spring Data 和 Spring MVC 和 AngularJS 发出可分页请求的好例子;这对我有很大的帮助。

【问题讨论】:

  • 您要求的页码是多少?
  • 我请求 page =1 但现在它工作正常我用 page=0 测试!
  • 第一个确实应该是0
  • 非常感谢您的帮助。你是生命的救星

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


【解决方案1】:

确保您的 PageRequest 对象为小型集合请求 0,而不是 1。

分页从0开始。

这对于初学者来说是一个常见的错误,并且是在将@Query 与 Spring 分页结合使用时的常见错误。如果您的@Query 工作时没有分页,然后在使用时没有返回任何内容,请检查页码。

【讨论】:

  • 小套装要求0是什么意思?
  • 天哪,我整晚都在尝试解决这个问题。页面索引 0 :(
【解决方案2】:

我遇到了类似的问题,我的问题是因为我在进行选择后修改了数据,使得修改后的字段与我用于搜索的字段相同。这意味着每次我运行查询时,它将匹配越来越少的记录,因此第 0 页将始终有新数据,因此在该实例中使用第 0 页始终不会受到伤害,因为新记录将始终填充第 0 页。在另一种情况下,我没有修改搜索字段,每次执行 select 语句时,我的查询都会匹配相同的记录,因此在这种情况下,请求确切的页面很重要。

【讨论】:

    【解决方案3】:

    达曼的回答帮助我找出原因。 如果您使用分页从数据库中获取数据,并且您在检索后更新搜索字段,那么页面信息将变得混乱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 2020-12-02
      相关资源
      最近更新 更多