SpringBoot中mybatis配置自動轉換駝峯標識沒有生效

mybatis提供了一個配置:apache

#開啓駝峯命名轉換 mybatis.configuration.map-underscore-to-camel-case=true

使用該配置能夠讓mybatis自動將SQL中查出來的帶下劃線的字段,轉換爲駝峯標誌,再去匹配類中的屬性。segmentfault

即:session

@Select("select phone_num,card_num from xxx where id=#{id}") public User getUserInfo(String id);

 

 

查出來的結果,會被自動轉換成phonenumcardnum,再和結果類(這裏就是User )中的屬性進行匹配。mybatis

更多和自動轉換駝峯標誌相關的詳細源碼分析能夠參考:傳送門app

————————————————————分割線—————————————————源碼分析

下面咱們說說我此次碰到的奇怪問題:spa

在個人項目中,明明在application.properties中將這個屬性設爲了true,結果運行到上文截圖57行代碼時始終爲false,致使後邊沒法找到匹配的屬性。code

 

通過一番DEBUG分析,發現項目爲了作多數據源,將生成blog

org.apache.ibatis.session.SqlSessionFactory

的配置抽出到使用@Configuration修飾的配置類中。underscore

 

application.properties配置文件中關於駝峯轉換的配置內容沒有放進去。這些錯誤的代碼我就不在這貼了,直接上改善後的代碼:

 

通過調整以後變成了如下形式:

將application.properties  mybatis的congfig加載到類中,再注入到SqlSessionFactoryBean中,問題解決。

相關文章
相關標籤/搜索