集合的嵌套查询
<collectioncolumn="关联主键ID(用于嵌套查询SQL语句传入参数,多个用逗号分开)" property="Java属性名"
ofType="列表中对象的类型(Java实体类)" javaType="ArrayList" select="另一个select映射SQL的ID"/>
eg.有一个专家类,查询需要返回专家著作(另一个类),在专家类中添加一个属性private List<Composition> expertComposition;
加一个resultMap,继承原来的resultMap(名为BaseResultMap)
<resultMap extends="BaseResultMap" id="expertCompositionMap" type="com.lgsc.cjbd.expert.model.Expert" >
<!-- 专家著作 -->
<collection column="expert_id" property="expertComposition" ofType="com.lgsc.cjbd.expert.model.Composition" select="com.lgsc.cjbd.expert.mapper.CompositionMapper.selectByExpertId" />
</resultMap>
再查询便可返回专家和专家著作
<!-- 根据id查询专家,结果返回专家著作 -->
<select id="selectExpertAndComposition" parameterType="Long" resultMap="expertCompositionMap">
select * from expert where expert_id=#{expertId}
</select>
集合的嵌套结果
<collection property="Java属性名" ofType="另一Java类名" javaType="ArrayList" resultMap="另一个resultMap的ID"/>
<resultMap="另一个resultMap的ID" type="另一Java类名">
<id property="id" column="关联主键ID"/>
........(其他字段)
</resultMap>