使用RresultMap中collection做嵌套查询
1.使用格式如下:
<collection column="传递给嵌套查询语句的字段参数" property="pojo对象中的集合属性" ofType="集合属性中的pojo对象" select="嵌套的查询语句" > </collection>
注意:<collection>
标签中的column:是要传递给select查询语句的参数,如果传递多个参数,格式为column= " {参数名1=表字段1,参数名2=表字段2}" ;
2.实例
(2)实体类
@Data public class SubjectVO implements Serializable { private static final long serialVersionUID = 1L; private String id; private String title; private Integer sort; private List<SubjectVO> children = new ArrayList<>(); }
(2)mapper.xml
<mapper namespace="com.atguigu.guli.service.edu.mapper.SubjectMapper"> <resultMap id="nestedSubject" type="com.atguigu.guli.service.edu.entity.vo.SubjectVO"> <id property="id" column="id"/> <result property="title" column="title"/> <result property="sort" column="sort"/> <collection column="id" property="children" ofType="com.atguigu.guli.service.edu.entity.vo.SubjectVO" select="selectNestedListByParentId"/> </resultMap> <select id="selectNestedListByParentId" resultMap="nestedSubject"> select id, sort, title from edu_subject where parent_id = #{parentId} </select> </mapper>