带有 mongodb 分页的 Spring Boot

问题描述 投票:0回答:1

我使用以下代码在 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 的文档,但没有发现任何结果。

java mongodb spring-boot pagination spring-data-mongodb
1个回答
0
投票

contollerservice中的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);

}
© www.soinside.com 2019 - 2024. All rights reserved.