0
点赞
收藏
分享

微信扫一扫

mybatis设置驼峰映射后失效问题(多数据源)


前言

按照通用策略yml配置驼峰失效 😦

mybatis:
configuration:
# 启动结果集自动映射 NONE 表示取消自动映射;PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。 FULL 会自动映射任意复杂的结果集(无论是否嵌套)。默认是partial,这是一种全局设置
auto-mapping-behavior: partial
# 开启驼峰映射
mapUnderscoreToCamelCase: true

注:此配置只适用与单数据源,如果单数据源驼峰失效,大多数配置问题,这方面找答案
数据库:user_name ==> 驼峰 userName

问题

因为我是多数据源链接,使用了自定义的配置数据源工具类,和原有单数据源内部扫描逻辑不同。也就是我虽然配置了全局驼峰,但是单个数据源并不会加载配置

尝试

网上找到了第一种解决方式,手动注入​​mybatis.configuration​​ 很遗憾 尝试无效

@Bean
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration mybatisConfig(){
return new org.apache.ibatis.session.Configuration();
}

解决

经过再次查找反复修改最终确定另一种注入方式 此方式可以解决多数据源驼峰失效问题
​可以看着篇文章:Java链接多数据源​​

@Bean(name = "sqlSessionFactory1")
@Primary
public SqlSessionFactory sqlSessionFactory1() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(ds1);
//开启驼峰
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
configuration.setMapUnderscoreToCamelCase(true);
sqlSessionFactoryBean.setConfiguration(configuration);
return sqlSessionFactoryBean.getObject();
}

​​参考文章:springboot多数据源如何配置驼峰映射或配置文件不起作用的问题​​


举报

相关推荐

0 条评论