CurriculumDao.xml 部分如下:
<resultMap
type="cn.longrace.wisdom.modules.dataBase.entity.CurriculumEntity"
id="curriculumMap">
<result property="id" column="id" />
<result property="code" column="code" />
<result property="name" column="name" />
<result property="teacherName" column="teacherName" />
<result property="teacherId" column="teacher_id" />
<result property="outline" column="outline" />
<result property="createTime" column="create_time" />
<result property="creator" column="creator" />
<result property="img" column="img" />
<result property="demand" column="demand" />
<result property="plan" column="plan" />
<result property="period" column="period" />
<result property="imgId" column="img_id" />
<result property="imgName" column="img_name" />
<collection property="classes" column="{curriculumId = curriculumId, teacherId = teacherId}"
select="cn.longrace.wisdom.modules.dataBase.dao.CurriculumClassDao.getClassesById" />
</resultMap>
1. collection中的property对应实体类CurriculumEntity的属性
private List<ClassEntity> classes;
2. column用于接收参数
2.1. 接收一个参数,示例:collection标签中的column="id"
2.2. 接收多参数,示例:collection标签中的 column="{curriculumId = curriculumId, teacherId = teacherId}"
CurriculumDao.xml 中方法示例:
<select id="selectListByParams" parameterType="map" resultMap="curriculumMap"> select cu.*, cu.id as curriculumId, t.`name` as teacherName, t.id as teacherId from lr_database_curriculum cu left join lr_database_curriculum_class dcc on dcc.curriculum_id = cu.id left join lr_database_teacher t on dcc.teacher_id = t.id <where> <if test="key != '' and key != null"> cu.name like concat('%',#{key},'%') </if> <if test="userId != '' and userId != null"> and t.id = #{userId} </if> <if test="curriculumId != '' and curriculumId != null"> and cu.id = #{curriculumId} </if> </where> group by cu.id </select> 上述红色部分相对应,绿色部分对应collection标签中select属性中CurriculumClassDao中的getClassesById方法的参数,如下: <select id="getClassesById"
resultMap="cn.longrace.wisdom.modules.dataBase.dao.ClassDao.classMap" parameterType="cn.longrace.wisdom.modules.dataBase.entity.CurriculumClassEntity"> select cl.* , count(lds.id) as studentNums, cc.teacher_id as teacherId from lr_database_class cl left join lr_database_curriculum_class cc on cl.id = cc.class_id left join lr_database_student lds on lds.class_id = cl.id where cc.curriculum_id = #{curriculumId} <if test="teacherId != null"> and cc.teacher_id = #{teacherId} </if> group by cl.id </select>