Java Spring 列表中的分页

Ros*_*ina 4 java sorting spring pagination spring-data-jpa

我正在开发一个 Spring 项目,其中有任务(id,名称)和分配(task_id,名称,...)。当我收到任务时,我也会收到分配的任务,但我无法实现分页系统。

public List<Tasks> getAllTasks() {
       List<Tasks> task = (List<Tasks>) taskRepository.findAll();
       return task;
   }
Run Code Online (Sandbox Code Playgroud)

这是我当前的代码。我想在分页的每一侧显示 10 个项目。

我尝试过类似的事情:

   public Page<Tasks> getAllTasks(Long page, Long size){
       List<Tasks> tsk = (List<Tasks>) taskRepository.findAll();
     
       int start =  new PageRequest(page, size).getOffset();
       int end = (start + new PageRequest(page, size).getPageSize()) > tsk.size() ? tsk.size() : (start + new PageRequest(page, size).getPageSize());

       return new PageImpl<Tasks>(tsk.subList(start, end), new PageRequest(page, size), tsk.size());
   }
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

我当前的 JSON 响应如下:

{
   id: 1,
   name: First Task
   assignments: [ 
        {
          id: 1,
          assignment_name: firstassignment
        },
        {
          id: 2,
          assignment_name: secondassignment
        }]
}
Run Code Online (Sandbox Code Playgroud)

我还读到它不需要是一个列表。我对任何想法持开放态度。

Ekl*_*vya 7

您可以创建并pageable作为参数发送findAll以获取数据

public Page<Tasks> getAllTasks(int page, int size){
    Pageable pageable = PageRequest.of(page, size);
    return taskRepository.findAll(pageable);
}
Run Code Online (Sandbox Code Playgroud)

这里有一篇关于 Spring Data JPA 中分页的好文章