Spring Data Pageable:返回空内容

Posted

技术标签:

【中文标题】Spring Data Pageable:返回空内容【英文标题】:Spring Data Pageable: Returns empty content 【发布时间】: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 非常感谢您的帮助。你是生命的救星 【参考方案1】:

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

分页从0开始。

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

【讨论】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于Spring Data Pageable:返回空内容的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有 Pageable 的 Spring Data JPA 分页来更改数据?

如何通过 Sort 和 Pageable 使用 Spring data JPA 开箱即用地查询数据?

使用@RestController在Spring中进行分页,但不使用Spring Data Rest Pageable?

如何记录Spring Boot JPA Pageable绑定值?

Spring 数据 JpaRepository 方法问题中的 Pageable 和 @Param [2]

Pageable 不能为 null 在 Spring Data-Solr 中使用组功能时抛出异常