如一个学校有多个班级,一个班级有多个学生
尝试在resultMap中的collection中使用多层嵌套,想复用select没有成功。
采取了另外一种方法
<select id="listStudent" resultMap="studentMap">
SELECT
s.id AS schoolId,
s.name AS schoolName,
c.id AS classId,
c.name AS className,
stu.id AS studentId,
stu.name AS studentName
FROM student stu
JOIN class c ON c.oid = stu.classId
JOIN school s ON s.oid = c.schoolId
</select>
<resultMap id="studentMap" type="java.util.Map">
<id javaType="java.lang.Integer" property="schoolId" column="schoolId"></id>
<result property="schoolTypeName" column="schoolName"></result>
<collection property="classList" javaType="java.util.List" ofType="java.util.Map">
<id property="classId" column="classId" ></id>
<result column="className" property="className"></result>
<collection property="studentList" javaType="java.util.List" ofType="java.util.Map">
<id property="studentId" column="studentId"></id>
<result column="studentName" property="studentName"></result>
</collection>
</collection>
</resultMap>