一、问题
SpringBoot + Mybatis-Plus,使用分页查询,records有记录,total却始终为0。
二、原因
查看很多博客,说是因为没有加分页拦截器。加上了,total仍然为0,PaginationInnerInterceptor根本没进入。原因是自定义的sqlSessionFactory里没有添加Mybatis-Plus分页拦截器。
三、解决
在sqlSessionFactory里添加分页拦截器。
@Configuration
public class MybatisPlusConfig {
/**
* 新增分页拦截器,并设置数据库类型为mysql
*/
@Bean(name = "mybatisPlusInterceptor")
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
添加后,在PaginationInnerInterceptor.willDoQuery()方法里可以看到,total被赋值了。