春季列表到页面的转换

2022-08-31 11:48:16

我正在尝试在春天将列表转换为页面。我已将其转换为使用

new PageImpl(users, pageable, users.size());

但现在我在排序和分页本身方面遇到了问题。当我尝试传递大小和页面时,分页不起作用。

这是我正在使用的代码。

我的控制器

    public ResponseEntity<User> getUsersByProgramId(
        @RequestParam(name = "programId", required = true) Integer programId Pageable pageable) {

    List<User> users = userService.findAllByProgramId(programId);
    Page<User> pages = new PageImpl<User>(users, pageable, users.size());

    return new ResponseEntity<>(pages, HttpStatus.OK);
}

这是我的用户存储库

public interface UserRepo extends JpaRepository<User, Integer>{

public List<User> findAllByProgramId(Integer programId);

这是我的服务

    public List<User> findAllByProgramId(Integer programId);

答案 1

我遇到了同样的问题。我使用了子列表:

final int start = (int)pageable.getOffset();
final int end = Math.min((start + pageable.getPageSize()), users.size());
final Page<User> page = new PageImpl<>(users.subList(start, end), pageable, users.size());

答案 2

有一个页面实现

Page<Something> page = new PageImpl<>(yourList);