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绑定值?