PageHelper分页查询一对多问题解决

Ø根据实际业务场景需求,对待办任务和已办任务需要进行分页查询

Ø先查询出所有的待办任务,然后根据任务id查询出所有的变量

Ø查询一对多问题:分页插件不支持嵌套结果映射,由于嵌套结果方式会导致结果集被折叠,因此分页查询的结果在折叠后总数会减少,所以无法保证分页结果数量正确

解决办法1:拆分sql查询语句,拿到任务id后通过程序遍历任务变量

1)在查询所有的基础上去除左连接查询任务变量sql语句

2编写service层的实现时通过查询的代办任务遍历任务变量

 

 

PageHelper分页查询一对多问题解决

缺点:消耗的资源多,性能低,每一次查询都需要循环遍历一次任务id

优化:service层做判断,如果传入的page对象为空,我们就默认查询全部,传入page对象,我们就做分页查询,service实现层和dao层有不同的方法对应

PageHelper分页查询一对多问题解决

1)mapper.xml中,增加实体bean的映射SubResultMap在该映射中嵌套一个子查询selectRunProcVariable,主查询查询待办任务id,主查询得到的每一条记录,会去子查询查询一次

PageHelper分页查询一对多问题解决

2)子查询selectRunProcVariable查运行时流程变量

PageHelper分页查询一对多问题解决