多数据源(如mysql,oracle)时,自动识别的globalConfig.dbType;要如何跟着切换数据源配置呢? 现在的情况是globalConfig.dbType不会自动切换,默认为默认的数据源的类型。

如下代码就会导致oracle等其它的数据库 都按mysql的关键字处理了 如加 `` 但是oracle是不用处理来着 / *

* 获取需要转义的SQL字段 *

* * @param column 字段 * @return */ protected String sqlWordConvert(String column) { return getGlobalConfig().getDbConfig().getReservedWordsHandler() .convert(getGlobalConfig().getDbConfig().getDbType()**, column); } 我查询到问题与265相识 https://github.com/baomidou/mybatis-plus/issues/265 我的代码是使用了多数据源创建一个SqlSessionFactory public SqlSessionFactory sqlSessionFactory( DynamicDataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {

是否要改成多个就ok了?

我之前的思路是切数据源的时候AOP方式,同时设置一下DbType

Comment From: monkeylxb

您好,我现在改成多个 SqlSessionFactory,设置不同的DBType ,但还是不行,楼主有解决办法吗

Comment From: bhdweb

目前好像是多个sqlSessionFactory不起作用,由于在启动时构造了基本crud方法,通过globalConfiguration将最后一个数据源产生的sqlSessionFactory缓存起来了

Comment From: miemieYaho

mp 是启动时注入,就算你运行时改变了 dbtype 也没意义,

Comment From: ClownfishYang

我也遇到了这个问题,查看源码发现DyType 启动时被设置到了GlobalConfig 中,我觉得这应该属于设计上的Bug,支持了多数据源的同时又遗留这种问题,非常不友好。