Mybatis,一对多查询,留个记录!
主表实体对象:
private Long id;
private String name;
private List<子表实体> 子表List;
get...
set...
主表-mapper.xml:
<!-- 一对多 -->
<resultMap id="自定义名,主表查询使用该id" type="主表实体对象">
<!-- <id property="id" column="id"/>-->
<!-- <result property="name" column="name"/>-->
<!-- 用collection标签 ,property对应实体类属性要对应子表List字段-->
<!-- column传主表的参数,如果主表没有该字段,可在主表建虚拟字段 如otherId-->
<collection property="子表List" column="{id=id,otherId=otherId}" select="子表查询自定义的id"/>
</resultMap>
<!-- 主表查询 -->
<select id="dao层方法名" resultMap="上面的resultMap的id">
<!-- 有查询条件 param -->
select *
<!--虚拟字段,给子表传参使用-->
IFNULL(#{param.otherId},'') as otherId,
from 主表 where 主表.name = #{param.name}
</select>
<!--子表查询-->
<select id="子表查询自定义的id" resultType="子表实体">
select * from 子表 where
子表.主表id=#{id}
and 子表.otherId=#{otherId}
</select>