我使用以下代码在 Spring Data Mongodb 中对我的集合进行分页:
控制器;
@GetMapping("/v1/get-all")
public List<UserEntity> getAll(@RequestParam Integer page, @RequestParam Integer size) {
return service.getAll(PageRequest.of(page, size));
}
服务;
public List<UserEntity> getAll(Pageable pageable){
return userRepository.findAll(pageable);
}
但是结果是这样的;
对于第一个请求,页面为 0,大小为 5
[1, 2, 3, 4, 5]
对于第二个请求,页面为 1,大小为 5
[2, 3, 4, 5, 6]
仅跳过一项。 我该如何解决这个问题?
我检查了 Spring Boot 和 Mongodb 的文档,但没有发现任何结果。
contoller和service中的getAll方法的返回类型应返回为页面类型而不是列表类型。
控制器:-
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@GetMapping("/v1/get-all")
public Page<UserEntity> getAll(@RequestParam Integer page, @RequestParam Integer size) {
return userService.getAll(PageRequest.of(page, size));
}
服务:-
public Page<UserEntity> getAll(Pageable pageable){
return userRepository.findAll(pageable);
}
存储库:-
@Repository
public interface UserRepository extends JpaRepository<UserEntity, Integer> {
Page<UserEntity> findAll(Pageable pageable);
}