diff --git a/backend/mci-server/src/main/java/com/sino/mci/config/MybatisPlusConfig.java b/backend/mci-server/src/main/java/com/sino/mci/config/MybatisPlusConfig.java index 2d88385..45ef922 100644 --- a/backend/mci-server/src/main/java/com/sino/mci/config/MybatisPlusConfig.java +++ b/backend/mci-server/src/main/java/com/sino/mci/config/MybatisPlusConfig.java @@ -1,7 +1,10 @@ package com.sino.mci.config; +import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.annotation.MapperScan; @@ -14,10 +17,18 @@ import javax.sql.DataSource; @MapperScan({"com.sino.mci.admin.repository", "com.sino.mci.channel.repository", "com.sino.mci.crm.repository", "com.sino.mci.flow.repository", "com.sino.mci.inbound.repository", "com.sino.mci.message.repository", "com.sino.mci.policy.repository", "com.sino.mci.send.repository"}) public class MybatisPlusConfig { + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + return interceptor; + } + @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource, MetaObjectHandler metaObjectHandler) throws Exception { MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); + factoryBean.setPlugins(mybatisPlusInterceptor()); GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setMetaObjectHandler(metaObjectHandler); diff --git a/backend/mci-server/src/test/java/com/sino/mci/config/MybatisPlusConfigTest.java b/backend/mci-server/src/test/java/com/sino/mci/config/MybatisPlusConfigTest.java new file mode 100644 index 0000000..b0fb5da --- /dev/null +++ b/backend/mci-server/src/test/java/com/sino/mci/config/MybatisPlusConfigTest.java @@ -0,0 +1,23 @@ +package com.sino.mci.config; + +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class MybatisPlusConfigTest { + + @Test + void mybatisPlusInterceptorContainsPaginationInnerInterceptor() { + MybatisPlusConfig config = new MybatisPlusConfig(); + MybatisPlusInterceptor interceptor = config.mybatisPlusInterceptor(); + + assertNotNull(interceptor); + assertTrue( + interceptor.getInterceptors().stream().anyMatch(i -> i instanceof PaginationInnerInterceptor), + "MybatisPlusInterceptor should contain PaginationInnerInterceptor" + ); + } +}