微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

列表Java Spring中的分页

如何解决列表Java Spring中的分页

我正在一个Spring项目中,其中有Tasks(ID,名称)和Assignments(task_id,名称,...)。当我获得任务时,我也得到了分配的任务,但是我无法实现分页系统。

public List<Tasks> getAllTasks() {
       List<Tasks> task = (List<Tasks>) taskRepository.findAll();
       return task;
   }

这是我当前的代码。我想在每个分页的一面显示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());
   }

但是它不起作用。

我当前的JSON响应如下:

{
   id: 1,name: First Task
   assignments: [ 
        {
          id: 1,assignment_name: firstassignment
        },{
          id: 2,assignment_name: secondassignment
        }]
}

我还读到它不必是列表。我愿意接受任何想法。

解决方法

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

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

一篇关于Spring Data JPA here中的分页的好文章

,
public List<Tasks>getAllTasks(Long page,Long size) {
   Pageable taskPageable = new PageRequest.of(page,size);
   return taskRepository.findAll(pageable);
}

我们也可以直接获取List对象,而不是Page对象。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。