刚下班,我把下午那个文字描述用苍穹外卖稍微演示一下

然后我就用了一下

他的两个表

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个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
又一年
内容推荐
下载 APP