PageHelper遇到resultMap的collection后,分页总是不对。
由于PageHelper分页总数是根据count(0)来计算出来的,而collection会把结果集合并(一对多的情况),计算总数在合并结果集之前,所以计算结果不对。同计数原理一样,分页实际在合并结果集之前进行的,这就导致了存在一对多情况时,实际返回的结果集个数和分页要求的每页结果集个数不一致,且如果最后一条记录也涉及一对多时,结果集内容也不一定准确。
综上:需要分页时,resultMap不要嵌套collection。
另外,对于mybatis(不使用分页)一对多出现结果集合并问题,请参考https://blog.youkuaiyun.com/hello_xusir/article/details/53424257解决。