如何在Spring Data中将对象页面转换为列表

43

我有一个像这样的对象页面:

Page<Video> videos = videoRepository.findAllVideos(new PageRequest(1, 50));

如何将其转换为 Video 对象列表,而不必遍历我的页面?


找到了一个使用Java Stream的解决方案。但仍需要迭代:videos.forEach(videoList::add); - DanielD
1
有人可以解释一下为什么我的问题不好而不是直接给我点踩吗? - DanielD
5
请参考 如何提出一个好问题。 特别注意其中的一句话“假设你正在与一个忙碌的同事交谈”。 一个好的问题需要表现出努力和研究。鉴于 Page 有一个返回 ListgetContent 方法,似乎在提问之前没有做过任何研究或付出努力。因此,用户(即忙碌的同事)可能会感到冒犯,从而导致负评。 - manish
2个回答

108
Page<Video> videos = videoRepository.findAllVideos(new PageRequest(1, 50));
List<Video> videosList = videos.getContent();
你可以使用上面的代码来获取页面中的视频列表。

8
getContent() 只返回单个页面的数据。如何获取所有页面的内容? - gavinSong
分页用于仅从当前页面获取记录。如果要获取表中的所有记录,可以使用CrudRepository而不是PagingAndSortingRepository。 - Sathyendran a
10
请注意当前的javadoc说明页面从0开始。 - pyb

8
尝试这个解决方案(并避免所有异常风险):
Page<Video> videoPage = videoRepository.findAllVideos(new PageRequest(1, 50));
List<Video> videoList = new ArrayList<>();
if(videoPage != null && videoPage.hasContent()) {
    videoList = videoPage.getContent();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接