1、获取接口传来的分页参数
String page_id=request.getParameter("page_id");//页码
String limit=request.getParameter("limit"); //每页数据条数
//判断为空时赋予初始值
if(StringUtils.isBlank(page_id)){
page_id="1";
}
if(StringUtils.isBlank(limit)){
limit="10";
}
//用PageRequest 接收分页参数
PageRequest pageRequest = PageRequest.of(Integer.parseInt(page_id) - 1, Integer.parseInt(limit));
2、业务层调用jpa查询
List<Map<String, Object>> comments = postCommentRepository.findCommentList("0", post_id, customerEntity.getId(), Integer.parseInt(pageRequest.getOffset()+""),pageRequest.getPageSize());
3、jpa用原声sql查询(nativeQuery = true)
加limit 使用传来的pageOffset和pageSize限制查询几条即可
此时要用List接收查询的数据,而不能用Page接收
@Query(value = "(select id id,content content,audit_flag audit_flag,create_date create_time," +
"customer_id customer_id " +
"from post_comment " +
"where del_flag=?1 and post_id=?2 and audit_flag='1')" +
"union " +
"(select id id,content content,audit_flag audit_flag,create_date create_time," +
"customer_id customer_id " +
"from post_comment " +
"where del_flag=?1 and post_id=?2 and customer_id=?3 and audit_flag in('0','2'))" +
"limit ?4,?5",nativeQuery = true)
List<Map<String,Object>> findCommentList(String delFlag,String post_id,String customerId,int pageOffset,int pageSize);
注意:我这里用的是union联合查询,要对查出的整体数据进行分页,则需要将union两边的sql用括号包起来