mybatis用resultType = map返回值中小写key会有重复的大写的key
Posted 6kuaifuji
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()));
}
以上是关于mybatis用resultType = map返回值中小写key会有重复的大写的key的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis 查询.resultType为Map,而某个字段是clob的,怎么搞定
mybatis返回一个count加一个字段该怎么设置返回resultType