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层加工也一样。
网友评论