snakerflow-starter / snakerflow-spring-boot-starter

基于开源SnakerFlow工作流引擎,将其和springboot进行整合成为一个能够快速工程应用的轻量级工作流引擎组件,适用于常见的业务审批流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。
569 stars 172 forks source link

原有springboot2.3.3 +mybatisplus3.3.0-3.4.0项目引入该项目依赖会造成mybatisplus自带分页失效 #6

Closed qq894698049 closed 3 years ago

jrd77 commented 3 years ago

万吨铜球

qq894698049 commented 3 years ago

加解决源码 @RequiredArgsConstructor @Configuration @ImportResource({"classpath:applicationContext.xml"}) @AutoConfigureBefore({DruidDataSourceAutoConfigure.class}) public class AutoConfig {

private final DataSource dataSource;

private final MybatisPlusInterceptor mybatisPlusInterceptor;

@Primary
@Bean(name = "helmetSqlSessionFactory")
public SqlSessionFactory helmetSqlSessionFactory()
        throws Exception {
    MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
    sqlSessionFactory.setDataSource(dataSource);
    // 关键代码 设置 MyBatis-Plus 分页插件
    sqlSessionFactory.setPlugins(mybatisPlusInterceptor);
    sqlSessionFactory.setTypeHandlersPackage("com.inspursc.common.data.handler");
    sqlSessionFactory.setTypeAliasesPackage("org.snaker.engine.entity");

// sqlSessionFactory.setMapperLocations(new ClassPathResource("classpath:mapper/*.xml")); return sqlSessionFactory.getObject(); }

@Bean("dbAccess")
public DBAccess access() throws Exception {
    MybatisAccess mybatisAccess = new MybatisAccess();
    mybatisAccess.setSqlSessionFactory(helmetSqlSessionFactory());
    return mybatisAccess;
}

}

jrd77 commented 3 years ago

加一下我的解决代码 自定义了SqlSessionFactory

//替换原MP中的SqlSessionFactory @Primary //必须是这个名字 @Bean("mybatisSqlSession") public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); sqlSessionFactory.setDataSource(dataSource); //分页插件 新版分页插件会报错,老版可用 PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); paginationInterceptor.setLimit(300); paginationInterceptor.setDialectType(DbType.MYSQL.getDb()); paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));

    Interceptor[] plugins = {paginationInterceptor};
    sqlSessionFactory.setPlugins(plugins);

    sqlSessionFactory.setTypeAliasesPackage("top.xxx.hermes.module.*.entity");

// sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis-config.xml")); sqlSessionFactory.setTypeEnumsPackage("top.antbastion.hermes.config.enums"); return sqlSessionFactory.getObject(); }

bigfish1129 commented 3 years ago

新版已修复这个问题