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

论坛 期权论坛 脚本     
匿名技术用户   2020-12-22 18:43   38   0

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

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

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

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

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

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

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

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

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

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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP