mybaits中使用pageHelper 进行一对都分页时结果不对的处理方式

1.pageHelper遇到resultMap的collection后,分页总数不对


        
        
        
            
            
            
            
        
        
            
            
        
        
            
            
        
    

 

由于PageHelper分页总数是根据count(0)来计算出来的(即自动生成一条SQL select count(0) from xx where 筛选条件),而collection会把结果集合并(一对多的情况),计算总数在合并结果集之前,所以计算的总数不对

 

2.pageHelper遇到resultMap的collection后,分页结果集不对

同计数的原理一样,分页实际是在合并结果集之前进行的(即直接在查询SQL语句后面加了limit x,x),这就导致了存在一对多情况时,实际返回的结果集个数与分页要求的每页结果集个数不一致,且如果最后一条记录也涉及一对多时,结果集内容也不一定准确

 

综上:需要使用pageHelper分页时,resultMap不要用嵌套结果的方式,可以使用嵌套查询的方式;

(嵌套查询示例如下)



    

    

    

    

    

    

    

 

参考自:  

https://blog.csdn.net/qq_33315102/article/details/80572566

你可能感兴趣的:(java知识积累)