刚下班,我把下午那个文字描述用苍穹外卖稍微演示一下
然后我就用了一下
他的两个表
select c.name,d.name as dishName,d.price from category c left join dish d on c.id=d.category_id
执行出来是这样的

然后我用resultMap将这些压缩成一条嵌套集合的形式
即这种

然后看这个total,我这里用了PageHelper插件,然后查出来的是27条,但是如果我们以大集合为单位,实际上它是11条。
{
"code": 1,
"msg": null,
"data": {
"total": 27,
"records": [
{
"name": "人气套餐",
"dishVOS": []
},
{
"name": "传统主食",
"dishVOS": [
{
"dishName": "馒头",
"price": "1.00"
},
{
"dishName": "米饭",
"price": "2.00"
}
]
},
{
"name": "商务套餐",
"dishVOS": []
},
{
"name": "新鲜时蔬",
"dishVOS": [
{
"dishName": "炝炒圆白菜",
"price": "18.00"
},
{
"dishName": "清炒西兰花",
"price": "18.00"
},
{
"dishName": "蒜蓉娃娃菜",
"price": "18.00"
},
{
"dishName": "清炒小油菜",
"price": "18.00"
}
]
},
{
"name": "水煮鱼",
"dishVOS": [
{
"dishName": "蜀味水煮草鱼",
"price": "38.00"
},
{
"dishName": "经典酸菜鮰鱼",
"price": "66.00"
},
{
"dishName": "老坛酸菜鱼",
"price": "56.00"
}
]
},
{
"name": "汤类",
"dishVOS": [
{
"dishName": "平菇豆腐汤",
"price": "6.00"
},
{
"dishName": "鸡蛋汤",
"price": "4.00"
}
]
},
{
"name": "特色烤鱼",
"dishVOS": []
},
{
"name": "特色蒸菜",
"dishVOS": [
{
"dishName": "剁椒鱼头",
"price": "66.00"
},
{
"dishName": "梅菜扣肉",
"price": "58.00"
},
{
"dishName": "东坡肘子",
"price": "138.00"
},
{
"dishName": "清蒸鲈鱼",
"price": "98.00"
}
]
},
{
"name": "蜀味烤鱼",
"dishVOS": [
{
"dishName": "鮰鱼2斤",
"price": "72.00"
},
{
"dishName": "江团鱼2斤",
"price": "119.00"
},
{
"dishName": "草鱼2斤",
"price": "68.00"
}
]
},
{
"name": "蜀味牛蛙",
"dishVOS": [
{
"dishName": "馋嘴牛蛙",
"price": "88.00"
},
{
"dishName": "香锅牛蛙",
"price": "88.00"
},
{
"dishName": "金汤酸菜牛蛙",
"price": "88.00"
}
]
},
{
"name": "酒水饮料",
"dishVOS": [
{
"dishName": "雪花啤酒",
"price": "4.00"
},
{
"dishName": "北冰洋",
"price": "4.00"
},
{
"dishName": "王老吉",
"price": "6.00"
}
]
}
]
}
}
数一下上面的name,刚好11个。
然后我就用resultMap,修改了一下
代码如下

然后查出来的数据

total为11条。
但这样有个弊端,就是每个父集合我相当于都开了一个sqlSession去执行sql。

这样肯定慢。
那我问题来了,我在mybatis文档查询貌似只支持多字段

而不支持集合形式?
那这样我就无法在一个池子里面完成这些SQL查询。
所以我就想问一下resultMap面对这种问题无解吗?我一下午都在纠结这个问题。
ps:我是知道可以不用resultMap的,直接拿到Java里面,分开查询,然后组装数据,效率也很高。或者直接在java里面完成嵌套。但我就是好奇如果用resultMap怎么解决这个问题,算是杠一杠。不用更方便。但我就是想知道resultMap面对这种分页+嵌套集合的数据是否有更高效的方法。求解。
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
我是项目小白,第一次做项目。因为之前赶进度,有些基础课程跟着敲了代码有些没有,但感觉很多也遗忘了,基础比较弱。总感觉自己有点浮躁。做项目的时候,会感觉没有思路,然后就问ai,问ai这个功能要怎么实现,我该怎么思考,但是ai给了我思路,我拿到手还是不会做。因为我不知道调哪个类,用什么方法合适,然后就依赖ai给的代码,然后就一直问ai为啥为啥这么做,让ai总结笔记。还好ai不嫌我烦,只图我的钱🤣。我
3
面试鸭
0
大家在编程导航中是怎么学习项目的呀,我最近在学习 AI 网关项目 python 版本,项目本地可以跑起来,已经按照教程看了一遍了,但还是一头雾水呀,回过头来看感觉还是很生涩,看不明白。首先在学习的过程中我需要定位到源码当中去看,但是教程没法直接逐行复制,导致我必须先粘贴到记事本,然后再复制函数名,在 pycharm 中全局检索才能找到,有时候还找不到...,其次我感觉教程文字太生硬了,有种惜字如金
1
idea2025.3版本创建springboot项目时想使用springboot3的没有怎么办,我在网上查是使用spring boot4的创建后再修改pom.xml文件之后每次都要这样改吗,修改的话不止版本号要修改
2
这些个企业开发中有必要删除吗,我有时候删除了启动类就编程.java 的格式无法运行了
1
作者分享
