前言
今天对一个商品列表进行分页查询,自己写的Mybatis的动态SQL,自己写SQL的话MybatisPlus不支持分页,所以自己用了PageHelper,后来发现执行后,pageInfo中的total一直不对,找了半天也不知道什么原因,开始自己写分页,写count语句,然而神奇的事情来了。。。
处理过程
先执行count没问题,执行完分页语句后,老是后面加个LIMIT 0,10,每次都是这个,第二页还是这个,所以有2个limit 一个小写的我加的,一个大写自动加上去的。
先把PageHelper去掉,发现还是多一个LIMIT 0,10,后面还以为是缓存,clean项目,重启,还是有,中午午睡都没睡,崩溃边缘。。
后来想了一下,自己传递的参数类继承了Page,这是MybatisPlus的分页类,然后自己这个类当做参数传递到mapper接口中,而自己的项目又使用了MybatisPlus的分页插件,导致MybatisPlus每次都给你加上LIMIT 0,10,后来把继承Page给去掉,结果可以了。再用PageHelper查询也是正常,total也正常了。
注意问题
如果你的项目引入了MybatisPlus的分页插件后,又是自己写的动态查询SQL,不要继承MybatisPlus的Page后,又把这个继承类当做参数传递到Mapper接口,这样分页插件默认会给你加上LIMIT 0,10。