Mybatis 驼峰与下划线映射

目前的项目中遇到一个坑,记录一下:

问题描述:

  在 application.properties配置文件中,设置 mybatis.configuration.map-underscore-to-camel-case=true 开启驼峰与下划线转换,idea 提示是设置成功的,但调试发现没有生效。

问题排查:

  在 org.apache.ibatis.session.Configuration 的 setMapUnderscoreToCamelCase 方法中增加断点,进行 debug,发现能够正确配置

 

 

   说明 Configuration 是正确生成的,只是没有正确生效。

  所以怀疑有其他的 Configuration 生成,而这个 Configuration 没有加载 mapUnderscoreToCamelCase

  于是,在 Configuration 的构造方法上增加断点,然后通过虚拟机方法栈成功找到问题代码

 

   原来代码中新注册了一个 SqlSessionFactoryBean,并且用 @Primary 优先注入

 

   由于 SqlSessionFactoryBean 是直接通过 new 方法生成的,所以 Configuration 也是直接用 new方法生成,无法获得相应配置。

解决方法:

  直接用代码直接显式设置Configuration 

 

 

posted @ 2020-11-28 14:50  上课爱睡觉  阅读(651)  评论(0编辑  收藏  举报