我有下面的get函数,它应该返回带有可选规范的页面内部的trips。
@GetMapping("/trip")
Page<Trip> all(@SearchSpec Specification<Trip> specs,
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "1000") int pageSize) {
//return repository.findAll(Specification.where(specs));
return repository.findAll(Specification.where(specs), PageRequest.of(page, pageSize, Sort.by("searchKey").ascending()));
}
现在,当我向api发出以下请求时: http://localhost:8080/trip?page=0&pageSize=2&search=departureAirport:'AMS'
我从api中得到了2条记录(trips),这是正确的。当我将请求更改为: http://localhost:8080/trip?page=1&pageSize=2&search=departureAirport:'AMS'
所以到了下一页,我从api得到了下两条记录(trips),这也是正确的,但是只要我想转到第2页,api就会返回与第1页相同的记录。所以第1页上面的每一页都返回相同的记录。
我可以增加pagesize,当我这样做时,api会返回更多的记录,但同样地,1以上的每一页都会返回相同的记录。所以只有第0页和第1页的数据不同。
我试图删除规范和排序,但这并没有解决问题。
1条答案
按热度按时间qnakjoqk1#
我最终使用了自己的分页算法,因为问题可能与sqlite有关,我不想更改我的数据库客户端。我在get请求中使用了以下代码: