如果一个对象中有一个list并且为作为其属性,那么需要使用collection 和ofType关键字,
数据库表结果
t_operation_role 角色表
t_operation_module modules 模块表
t_operation_role_module 两者关联表
<select id="get" parameterType="int" resultMap="RoleModelRel">
SELECT role.id AS id,
role.key AS `keys`,
role.display_name AS `name`,
modules.id AS mid,
modules.`key` AS urlprex,
modules.display_name AS mname
FROM t_operation_role_module roleModule
JOIN t_operation_role role ON roleModule.rid = role.id
JOIN t_operation_module modules ON roleModule.mid = modules.id
WHERE roleModule.rid = #{id}
</select>
<resultMap id="RoleModelRel" type="SSORoleModel">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="keys" column="keys"/>
<collection property="ssoProjectModels" ofType="SSOProjectModel">
<id property="id" column="mid"/>
<result property="urlprex" column="urlprex"/>
<result property="name" column="mname"/>
</collection>
</resultMap>
Model类结构
SSORoleModel
private int id; private String name;
private List<SSOProjectModel> ssoProjectModels;
SSOProjectModelprivate int id; private String name;private String urlprex;