当前使用版本(必填,否则不予处理)

3.4.3.3

该问题是如何引起的?(确定最新版也有问题再提!!!)

Atomikos 分别连接Mysql和Postgresql 13 1.两个数据插入产生的ID规则不一样 2.如何单独指定IKeyGenerator

实体 @Data @EqualsAndHashCode(callSuper = false) @TableName("public.t_test") @KeySequence(value = "seq_test", dbType = DbType.POSTGRE_SQL) public class Test implements Serializable { .... }

我已经加入 @Bean public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() { List keyGenerators = new ArrayList<>(); keyGenerators.add(new PostgreKeyGenerator()); return plusProperties -> plusProperties .getGlobalConfig() .getDbConfig() .setKeyGenerators(keyGenerators); }

单独运行是可以正常插入的,但是建立SqlSessionFactory 后无法找到PostgreKeyGenerator规则 @Bean(name = "sqlSessionFactoryCar") public SqlSessionFactory sqlSessionFactoryCar(@Qualifier("primaryDataSource") DataSource primaryDataSource) throws Exception { MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean(); sessionFactoryBean.setDataSource(primaryDataSource); sessionFactoryBean.setTypeAliasesPackage("com.softfabrique.test.entity.database1");

    MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
    mybatisConfiguration.setCacheEnabled(false);
    mybatisConfiguration.setLogImpl(StdOutImpl.class);
    mybatisConfiguration.setMapUnderscoreToCamelCase(false);

    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));
    mybatisConfiguration.addInterceptor(interceptor);

    sessionFactoryBean.setConfiguration(mybatisConfiguration);
    return sessionFactoryBean.getObject();
}

重现步骤(如果有就写完整)

报错信息

Comment From: qmdx

因为你自己创建了 MybatisSqlSessionFactoryBean 导致默认的一些配置丢失了,细节查看 https://gitee.com/baomidou/mybatis-plus/blob/3.0/mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.java

处理方式一, 按照 如上方式注入 IKeyGenerator 处理方式二,等待下一个版本注入 TransactionFactory 不要去动 MybatisSqlSessionFactoryBean