mybatis用resultType = map返回值中小寫key會有重復的大寫的key


問題描述:

mybatis 版本3.0.5 其他版本可能不存在這個問題,是可能哇 ,因為我遇到的項目是一個年代久遠的項目。所以用的是3.0.5這個版本。

mybatis用resultType = map接查詢的返回值,這時候如果sql寫的是select  aaa  from ...................,那么返回值map中會出現 key為 aaa 和 AAA的兩個值,他們的value

是一樣的。

這時候你可能會想到查詢sql起別名這個操作來解決這個問題,但是在這個版本下,起了別名也還是會有這個問題。

查詢大佬博客然后看源碼發現,這個版本中的源碼就是小寫的key然后自動在補一個大寫的key進去,也有人說這個問題是這個版本的bug.

 

 

 

我的解決辦法就是  sql用大寫select AAA ......,然后拿出來再轉一下

LinkedHashMap<String, String> map1 = new LinkedHashMap<String, String>();

for (Map.Entry<String, String> entry : map.entrySet()) {
map1.put(entry.getKey().toLowerCase(),String.valueOf(entry.getValue()));
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM