多表单独查询组合结果的自定义分页实现(java代码)
一、业务需求:
遇到一个业务,需要多个表进行分页查询,使用union联合查询时,速度极其缓慢,即使查询的字段添加了索引,union查询好像不走索引,因此联合查询无法满足需求。
二、解决思路:
想到一个解决方案,多个表进行单独查询(表查询字段添加索引就会快很多),根据分页参数查询需要的表中的数据,其他的表仅仅查询满足条件的数量值count返回累加,作为total分页使用。
三、代码实现:(纯手写)
PageInfopageInfo = null;
//1、根据查询时间获取存在的表
ListreList = getExitTablesByTime(startTime,endTime);
if(reList.isEmpty()){
return "不存在数据!";
}
PageCondition pageCondition = abcQuery.getPageCondition();
if(StringUtils.isEmpty(pageCondition)){
pageCondition = new PageCondition();
}
Integer pageSize = pageCondition.getPageSize();
Integer pageNum = pageCondition.getPageNumber();
Integer totalSize = pageSize;
Integer total &#