1.示例
定义一个特殊map类型DepartmentMap
<!-- 获取一级、二级科室-旧 deprecated -->
<resultMap id="DepartmentMap" type="map">
<id column="id" jdbcType="VARCHAR" property="deptCode" />
<result column="name" jdbcType="VARCHAR" property="deptName" />
<collection property="children" javaType="java.util.ArrayList" ofType="com.gg.midend.entity.SubDepartment">
<id column="sub_id" jdbcType="VARCHAR" property="deptCode" />
<result column="sub_name" jdbcType="VARCHAR" property="deptName" />
</collection>
</resultMap>
使用DepartmentMap类型
<select id="selectDepartment" parameterType="map" resultMap="DepartmentMap">
SELECT subDept.id AS sub_id,
subDept.`name` AS sub_name,
parDept.id,
parDept.`name`
FROM (SELECT * FROM sch_dept WHERE `level` = '2' AND active = '1') AS subDept
LEFT JOIN (SELECT * FROM sch_dept WHERE `level` = '1' AND active = '1') AS parDept ON subDept.par_id = parDept.id
WHERE parDept.hospital_id = #{hospitalId}
ORDER BY parDept.`order`, subDept.id
</select>
Java代码: