如何使用MybatisPlus自定义SQL多表条件查询请看Mybatis-Plus多表分页加条件自定义sql查询(三表查询)
在使用MybatisPlus自定义SQL进行多表条件查询时会报错,报错信息如下
IPage封装条件查询后,使用IService的page查询后,他会封装各种信息进IPage,封装IPage.total时,会再次进行一次COUNT(*)查询,但是此时查询条件其他表的字段,会报没有找到字段,SQL语句异常
先来查看官方文档描述
解决方法:
- page.setOptimizeCountSql(false);
这个方法比较简单,是对查询结果封装进行优化,代码如下
可以看到这次查询时,它是对条件查询分页后的数据进行COUNT(*)计数// 分页查询数据 Page<LendList> page = new Page<>(pageNo, pageSize); // 对多表查询后的结果进行count(*) page.setOptimizeCountSql(false); IPage<LendList> lendListIPage = lendRecordMapper.getLendList(page, wrapper);
- Page<VO> page = new Page<>(pageNo, pageSize, false);
注意第三个参数为false,这是不查询count,需要自己对count进行查询封装
个人推荐使用第一种方法