【MyBatis】集合的嵌套结果映射(ResultMap一对多映射配置collection)结果查不到或返回结果与数据查询不符问题

查询每个用户的所有订单:
包括一个用户有多个订单的情况,返回的结果需要进行一对多映射配置
user表
在这里插入图片描述
video_order表
在这里插入图片描述

mapper.xml:

	<resultMap id="UserOrderResultMap" type="User">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="headImg" column="head_img" />
        <result property="phone" column="phone" />
        <result property="createTime" column="create_time" />

        <collection property="videoOrderList" ofType="VideoOrder">
            <id property="id" column="id" />
            <result property="outTradeNo" column="out_trade_no" />
            <result property="state" column="state" />
            <result property="createTime" column="create_time" />
            <result property="totalFee" column="total_fee" />
            <result property="videoId" column="video_id" />
            <result property="videoTitle" column="video_title" />
            <result property="videoImg" column="video_img" />
            <result property="userId" column="user_id" />
        </collection>
    </resultMap>

    <select id="queryUserOrder" resultMap="UserOrderResultMap">
        select u.id,u.name,u.pwd,u.head_img,u.phone,u.create_time,
               o.id,o.user_id,o.out_trade_no,o.state,
               o.create_time,o.total_fee,o.video_id,o.video_title,o.video_img
        from user u left join video_order o on u.id = o.user_id
    </select>

数据库查询结果:
在这里插入图片描述

控制台结果出现两个问题:
1、查询结果只有一条
2、domain层相同的属性名值也相同,没有返回正确的值
在这里插入图片描述

解决:
select查询中设置别名,修改collection标签中的column值
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆浆两块钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值