关于MyBatis使用collection不能获取所有关联数据问题

本文通过一个具体的 MyBatis 配置示例,详细解释了如何使用 resultMap 属性进行结果映射,包括主表与从表之间的关联映射。通过对 xml 文件中 resultMap 的配置说明,介绍了如何将查询结果映射到 Java 对象,特别是如何处理一对多的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xml文件部分配置如下:

...

<resultMap type="classess" id="resultClassess">

   <id property="id" column="id"/>

   <result property="name" column="c_name"/>

<!--  此处 column 的值 和别名一样就可以了,property值和实体里面的一样 -->

   <collection property="students" javaType="ArrayList" ofType="student">
      <id property="id" column="s_id"/>
      <result property="name" column="s_name"/>
      <result property="password" column="s_password"/>
      <result property="age" column="s_age"/>
      <result property="sex" column="s_sex"/>

   </collection>


</resultMap>

...

select语句如下:

注意:只需要用上别名就可以解决这个问题了...

 <select id="selectClassessById" resultMap="resultClassess" parameterType="int">
   select c.id,c.name as c_name,s.id as s_id,s.name as s_name,s.password as s_password,s.age as s_age,s.sex as s_sex from classess c left outer join student s on c.id = s.classess_id where c.id=#{id}
 </select>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值