mybatis返回Map结构

2020-08-21  本文已影响0人  修行者12138

select * from student;
表结构如下


image.png

希望mybatis返回以下Map格式数据

{
    "100": {
        "id": 100,
        "name": "小民",
        "age": 20
    },
    "101": {
        "id": 101,
        "name": "小白",
        "age": 20
    },
    "102": {
        "id": 102,
        "name": "小平",
        "age": 21
    }
}

StudentMapper.java中写法如下

@MapKey("id")
Map<Integer, StudentDO> groupById();

StudentMapper.xml中写法如下

 <select id="groupById" resultType="com.crazyboy.springboot.entity.StudentDO">
    select * from student
</select>

即可达到上面的效果

上面的Map的key、value是一对一的关系,即一个id对于一个学生。
假如key和value是一对多的关系,比如一个年龄对应多个学生,期望返回格式如下,该怎么写?

{
    "20": [
        {
            "name": "小民",
            "id": 100,
            "age": 20
        },
        {
            "name": "小白",
            "id": 101,
            "age": 20
        }
    ],
    "21": [
        {
            "name": "小平",
            "id": 102,
            "age": 21
        }
    ]
}

暂时没找到方法==,不过这些都是语法糖而已,在service层加工也一样。

上一篇下一篇

猜你喜欢

热点阅读