开发者学堂课程【MongoDB精讲课程(上):根据上级 ID 查询文章评论的分页列表】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/726/detail/12969
根据上级 ID 查询文章评论的分页列表
有两个知识点,第一个是条件查询,根据上级 ID 查询,第二个是查询之后做分页。
CommentRepository 新增方法定义
//根据父 id,查询子评论的分页列表
Page<Comment> findByParentid(string parentid
,Pageable pageable);
方法返回值为 Page<Comment>,findByParentid 条件查询,Pageable pageable 分页参数
演示:
findBy 是语法格式,对应条件查询 Parentid
Pageable pageable 自动解析成分页查询
输入完成后在 service 调动,在 service 新建方法,
public Page<Comment> findByParentid(string parentid
,int page,int size)
return CommentRepository.findByParentid(Parentid,PageReguest.of(page,size))
Page 是索引类型,需要减1
public Page<Comment> findByParentid(string parentid
,int page,int size)
return CommentRepository.findByParentid(Parentid,PageReguest.of(page:page-1,size))
测试:
@Test
public void testFindCommentListByParentid() {
Page<Comment>page=commentService.FindCommentListByParentid(Parentid:”3”,page:1,size:2);
System.out.println(page.getTotalElements());
System.out.println(page.getContent());
}
getTotal 返回总条数,getContent 返回具体 List 集合
PageReguest of 方法实际上 new 了一个 PageReguest
public static PageRequest of(int page
,int size,Sort sort)(
return new PageRequest (page.size. sort)
PageRegues t实际上继承 AbstractPageReguest,AbstractPageReguest 实现了 Pageable 接口
运行结果是空集0
新建数据,执行查询
以上为分页与条件查询的写法
注意:
Page<Comment> findByParentid(string parentid
,Pageable pageable);
findByParentid 中一定是 Parentid,换成其他的运行则会报错
部分报错:
没有对应的属性,说明标准的语法格式错误