首页  >  问答  >  正文

java - 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>
黄舟黄舟2712 天前1685

全部回复(5)我来回复

  • ringa_lee

    ringa_lee2017-04-18 10:01:16

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

    回复
    0
  • 阿神

    阿神2017-04-18 10:01:16

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

    回复
    0
  • 怪我咯

    怪我咯2017-04-18 10:01:16

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

    回复
    0
  • ringa_lee

    ringa_lee2017-04-18 10:01:16

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

    回复
    0
  • 阿神

    阿神2017-04-18 10:01:16

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

    回复
    0
  • 取消回复