查询每个用户的所有订单:
包括一个用户有多个订单的情况,返回的结果需要进行一对多映射配置
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值