关联表存在相同名字段问题
问题来源
当存在相同字段时,例如 Patents 表和 Employees 表都具有 name 字段,那么关联查询结果 Employees.name 字段值将被 Patents.name 覆盖
解决方案
总的来说就是设置查询出的列表别名,然后在 resultMap 中修改对应字段 column 为刚设置的别名;
Mapper.xml<resultMap type="Patents" id="PatentsResult"> <result property="id" column="id" /> <result property="patentsCode" column="patents_code" /> <result property="code" column="code" /> <result property="name" column="pat_name" /> <result property="projectCode" column="project_code" /> <result property="projectName" column="project_name" /> <result property="level" column="level" /> ... <result property="employeeCode" column="employee_code" /> <association property="employees" column="id" javaType="Employees" resultMap="EmployeesResult" /> </resultMap>
<resultMap type="Employees" id="EmployeesResult"> <result property="id" column="id" /> <result property="employeeCode" column="employee_code" /> <result property="name" column="name" /> </resultMap>
|
注意:查询方法中所有涉及重名的字段(包括 id 字段)都应该设置字段别名,同时在 resultMap 中设置 column 为刚设置的相应别名。