MybatisPlus分页查询是返回total不正确,是因为没有加这个配置的原因
@EnableTransactionManagement
@Configuration
@MapperScan("com.xx.*.mapper*")
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInterceptor.setLimit(-1);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
}
这段代码是一个配置类,用于配置MyBatis Plus框架的一些参数和功能。
@EnableTransactionManagement 注解表示启用事务管理,可以在该类中使用 @Transactional 注解来声明事务。
@Configuration 注解表示这是一个配置类,Spring会自动识别并加载该类的配置。
@MapperScan(“com.xx.xcloud.dsp..mapper”) 注解用于扫描指定包下的 Mapper 接口,将其注册为 Spring Bean,使其可以被其他组件自动注入使用。
MybatisPlusConfig 类定义了一个名为 paginationInterceptor 的 Bean,并通过 @Bean 注解标记该方法将返回一个对象,Spring会将其注册为一个 Bean。
paginationInterceptor() 方法返回一个 PaginationInterceptor 对象,该对象是 MyBatis Plus 提供的分页插件。setLimit(-1) 设置最大单页限制数量为 -1,表示不受限制,可以返回任意数量的记录。
setCountSqlParser(new JsqlParserCountOptimize(true)) 开启 count 的 join 优化,针对部分 left join 进行优化,提升查询性能。
通过配置 MybatisPlusConfig 类并注册 paginationInterceptor Bean,可以实现在使用 MyBatis Plus 进行数据库操作时自动进行分页和查询优化。