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