mybatis关联查询,查不出数据 1C

resultMap映射
resultMap映射
主对象
子对象
孙对象
sql

求大神, 关联三层之后, 第三层的对象没有值, 只关联两层的话可以查出值

0

7个回答

检查你material_purchase_order_item表的数据,是不是有?

0
wuzi1112
一只废柴 数据都有,不用考虑数据的问题
接近 2 年之前 回复

会不会是 oi表和m表连接之后,m表没有id可以跟pic连接。 oi和m左连接,m表中所有id如果不是oi表中都有,那么oi表有些数据是没有的,而oi失去的这些数据恰好又是跟pic连接的数据。

0
//可能情况:你oi和m表联合后的表中的记录中,不存在和pic.material_id相同的mid记录
//可以测试一下,在oi和m连接后的结果集中查询和pic.material_id相同的记录,如果不存在,那么你的程序是没有任何问题的,说明库中本身不存在满足条件的数据
//如果存在结果,那就是表间关联字段或数据不合理
select * from where pic.material_id in
(
    select  m.id  from material_purchase_order_item oi
    left join material m on oi.material_id=m.id
)
0
select * from material_picture pic where pic.material_id in
(
        select  m.id  from material_purchase_order_item oi
        left join material m on oi.material_id=m.id
)
0
wuzi1112
一只废柴 数据是有的, 同样的sql放数据库执行出来有数据,
接近 2 年之前 回复

前两张表可以查到值,只能说明前两张表有交集, 后两张表查出来数据 只能 说明后两张表有交集。但是连接第三张表查询不到。 说明三张表连在一起没有共同的交集 。也很正常。就好比 一与二表的交集是 4,5 二表与三表的交集是 7,8 但是一表二表三表的数据就没有交集

0
xuanzhangran
转角人生 看看你的resultMap里的结果集,是不是都有需要查询的字段,以及对应的实体类里是否有get,set方法
接近 2 年之前 回复
wuzi1112
一只废柴 数据是有的, 同样的sql放数据库执行出来有数据,
接近 2 年之前 回复

为什么第三层 你定义的是一个list呢?似乎有点不符合关联查询的逻辑。

0
luofangfu
luofangfu 回复一只废柴: 你仔细看看你的数据呢?这样做是没有问题的
接近 2 年之前 回复
wuzi1112
一只废柴 回复luofangfu: 试过了,还是没有
接近 2 年之前 回复
luofangfu
luofangfu 回复一只废柴: 第一个 mapper中的collection 对应关系有没有问题,第一个mapper 换成 association 试试呢?
接近 2 年之前 回复
wuzi1112
一只废柴 业务需求,表也不是我建的,数据模型就是这个样子
接近 2 年之前 回复

断点查看一下,可能是有数据但是控制台没有显示而已

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!