Mybatis,如何配置才能返回Map<String,List<Person>> 类型的resultMap?

表类似于:
PERSON : ID , NAME , AGE , BIRTHDAY ,STATUS
sql语句类似于:
SELECT * FROM PERSON ORDER BY STATUS

这样,每种STATUS对应了一列PERSON,如何配置Mybatis才能得到Map<String,List<Person>>这样的数据结构?

想象中,配置应该是类似于下边的结构:

<resultMap id="statusMapPerson" type="HashMap<String , List<Person> >">

</resultMap>
阅读 23.3k
5 个回答

sql语句类似于:
SELECT * FROM PERSON GROUP BY STATUS
这句sql只取到了每种STATUS的第一项,不知道你的应用场景是?

没辙,只能自己去拼,实际上mybatis返回的map都是List<Map<String, Object>>,Map的key是column name,value是column value

搜一下,ResultHandler看看能不能解决

你group by查询后的结果就是map类型的,使用效果和你的string,list的样式是一样的,如果你需要你说的那种结果,就使用associate自己去组装。写一个对象映射List<Person>

map 映射 ——
object
-key
-list<String>
先映射为对象的字段
在转换成map

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题