autoMapping 可以作用在 association 和 resultMap 标签上。联合查询中,一对一关系需要给字段别名,比如 c_xxx
,在 association 中添加 columnPrefix,再开启 autoMapping 就可以匹配查询过后的字段:
<resultMap id="mapOfQueryMyself" type="Student" autoMapping="true">
<association property="college" columnPrefix="c_" javaType="College" autoMapping="true"/>
<association property="profession" columnPrefix="p_" javaType="Profession" autoMapping="true"/>
<association property="grade" columnPrefix="g_" javaType="Grade" autoMapping="true"/>
</resultMap>
<select id="queryMyself" resultMap="mapOfQueryMyself">
SELECT s.*,
c.cno c_cno,
c.name c_name,
p.pno p_pno,
p.name p_name,
p.type p_type,
p.edu_sys p_edu_sys,
p.degree p_degree,
p.code p_code,
g.gno g_gno,
g.name g_name,
g.layer g_layer,
g.grade g_grade
FROM `students` as s
JOIN `colleges` as c on c.cno = s.college_id
JOIN `grades` as g on g.gno = s.grade_id
JOIN `professions` as p on p.pno = s.profession_id
WHERE s.sno = 1;
</select>