今天在开发的时候,突然发现一个sql的下划线转驼峰命名没有起作用导致数据查询出现错误。具体如下:
之前一直都是在application.properties里面加上mybatis.configuration.map-underscore-to-camel-case=true就可以实现mybtis下划线转驼峰命名了。但是这一次配置没起作用。
然后我就想到了,我这个项目是配置了多数据源的,数据库配置了其他东西。
所以是不是在properties文件的配置没有起作用,然后就debug看了一下,果然是配置没有起作用。如下:
那解决这个问题就简单了,只需要在配置SqlSessionFactory的时候,获取到SqlSessionFactory的configuration,然后把mapUnderscoreToCamelCase设置成true就OK了。
@Bean
public SqlSessionFactory adminWriteSessionFactory(@Qualifier("adminWriteDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:com/yueli/platform/admin/mapper/*.xml"));
SqlSessionFactory factory = bean.getObject();
factory.getConfiguration().setMapUnderscoreToCamelCase(true);
return factory;
}
然后重启项目,debug看下。驼峰命名转换已为true,数据正常获取到了。问题解决。