由于用公司电脑开发的原因。没有截图
.提要:某个页面涉及到了一个列表的分页查询,其中涉及到了三个表 executor,item,以及relation关系表,相当于一个executor可以检查多个item,也就是一对多的关系。
一开始,一对多想到的就是resultMap形成一个映射关系,于是马上动手开始写
好,写完,等不及马上测试
虽然没有404,不过也有个问题,使用swagger测试的时候不管wo数据库里面类型是啥 返回的都是个数组形式的["1","1",...]
于是赶紧百度,发现了问题,如果使用的是String类型,collection不能这么写,于是更正
很开心,用swagger一测试,果然正常返回库中的内容了,于是跟大佬暗示这些搞定了,GKD
---------------------------------------------------------------------------------------------------------------------------------
于是第二天,与前台联调,在进行分页查询的时候,发现即使我库中有15条数据,limit 0,10返回的也是7条数据,
这里项目中一直使用的是pageHelper进行一个分页操作,查看前台返回的数据时候 发现total显示的是15,但是封装的list只有7条
果然,经定位发现 executor果然只有7条数据,而relation则有15个与之相关的数据,问题找到了,于是赶紧百度一下。
https://blog.csdn.net/xiaoxiangzi520/article/details/76058431 这里感谢这位@FinelyYang 这位大佬分析的思路,主要就是
mybatis在使用分页limit关键字时,java映射得到的数据是由主表也就是executor得到,而sql数量则是由relation得到,这就导致了两遍数据不一样,也就导致了分页不能正常显示。大佬的解决方法也给了我一点提示,于是
这里比起之前 就是在collection中多分出了一个select选项,就是再映射了一个子查询,而column=“id”这项是作为executor中的id作为与relation左关联的参数传入selectRelationXXX中形成关联,而原来的主表查询就不需要再填写关联了,直接将对应的信息查询即可
很开心,联调完成。希望没啥问题了 记录一下