首页 新闻 搜索 专区 学院

mybatis三表联合查询显示三个表的全部信息同时可以按不同的条件查询

0
悬赏园豆:15 [已解决问题] 解决于 2021-01-21 10:57

三个表分别是:order,member,setmeal

order字段:id,memberId,setmealId,orderState...
member字段:id,name,telephone
setmeal字段:id,name,price
order的memberId对应member的id,order的setmealId对应setmeal的id

要求是:查询所有的order信息,同时要有member和setmeal的所有信息,并且可以实现以 member的name,telephone,setmeal的name,order的orderState 作为条件查询,实现单条件查询,多条件查询

我目前只实现了查到全部信息,

但是条件查询就开始迷茫了,也没有Example类,这个怎么实现

问题补充:


怎么通过member中的name 作为查询条件查询

大龄初学者兰姐的主页 大龄初学者兰姐 | 初学一级 | 园豆:165
提问于:2021-01-14 14:40
< >
分享
最佳答案
0

简单点的可用List<Map>返回集合。resultMap="java.util.List"。sql要多表join
可避免List<Order> 数据拼装的问题

收获园豆:15
Ctrl` | 老鸟四级 |园豆:2912 | 2021-01-14 14:52

你说的是这样吗?这样只能拿到order的全部数据,别的出不来啊,而且order和member,setmeal没有一对多的关系怎么用list呢

大龄初学者兰姐 | 园豆:165 (初学一级) | 2021-01-14 15:30

@大龄初学者兰姐: 没有一对多的关系 啥意思?这三个表关联关系该有的吧

Ctrl` | 园豆:2912 (老鸟四级) | 2021-01-14 16:32

@大龄初学者兰姐: 噢,好像明白你意思了。
一种就是如果表join方便的话。就用我上面说的那种;
如果join不方便。那就分开查,然后在代码里进行结果集拼装。自定义一个结果集Bean,里面包含order、member,setmeal信息返回

Ctrl` | 园豆:2912 (老鸟四级) | 2021-01-14 16:47

@Ctrl`:
还是只能得到这种啊,只有order的数据

大龄初学者兰姐 | 园豆:165 (初学一级) | 2021-01-15 11:35

@大龄初学者兰姐: pojo.Order。这里面的字段值要有member、setmeal的字段阿。能与sql对应的那种字段。没有的话结果集肯定查不出来

Ctrl` | 园豆:2912 (老鸟四级) | 2021-01-15 13:05
其他回答(1)
0

根据入参写IF之类的判断呗,返回的话就根据你的resultType指定实体类呗

yytxdy | 园豆:1352 (小虾三级) | 2021-01-14 14:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册