使用spring boot跳过分页中的元素

vsdwdz23  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(401)

我有一个用spring boot做的后端应用程序,我想在前端加载,一些主题的评论,我把这些评论分页排序后加载,如果用户只滚动,就可以得到下一页,但是有一个问题,用户也可以发表评论,这些评论放在表中,从中我们得到分页的评论发送到前端。问题是,如果我得到两个页面,每个页面有10条评论,然后发布一条评论,比如说在第一个页面的元素之间,因为评论是排序的,所以插入评论之后的所有项目都会被移动一个位置,所以第三页的第一个注解将是第二页的最后一个元素,已经发送到前端,我得到了重复的注解。
Pageable pageable = PageRequest.of(page, 8, Sort.by("text").ascending()); List<Comment> commentsPage = commentsRepository.findAllByBookId(bookId, pageable); ```
@Repository
public interface CommentsRepository extends JpaRepository<Comment, String> {
List findAllByBookId(String bookId, Pageable pageable);
}

为了解决这个问题,我想在前端记住添加了多少条评论,当我要求下一页指定它们时,可以跳过这些评论,但我不知道怎么做。
我对java和SpringBoot还不熟悉,如果有其他解决方案,我可以接受建议。
1aaf6o9v

1aaf6o9v1#

你可以使用@creationtimestamp找出创建任何评论的时间,然后按升序排序

@CreationTimestamp
 private LocalDateTime createdAt;

Pageable paging = PageRequest.of(pageNo, pageSize, Sort.by("createdAt").ascending());

相关问题