避免在Spring分页中重复



我目前正在尝试用Angular和Spring构建一个社交网络。我正在尝试在后端实现分页系统。

public List<PostResponse> getAllPosts(int page){
Pageable pageable = PageRequest.of(page, 10);
return postRepository.findAll(pageable).stream().map(this::postToPostRes).collect(Collectors.toList());
}

这是工作,但有一个问题。假设我的后台目前有15个帖子(post1, post2,等等),其中前10个都在用户主页上。如果有一个新的帖子,用户请求第二页,将会有一个重复,因为他在前端端查看的最后一篇文章现在是后端第二页的第一页。

解决这个问题最有效的方法是什么?

您可以根据点击的时间选择在点击时间之前创建的所有帖子,在这种情况下,您仍然有并发问题的风险,但影响很小(取决于流量)。

您还可以获取用户看到的最后一个帖子ID,并应用->当id为<{your-post-id}

最新更新