1.映射写法如下
@SelectProvider(type = UserGroupMapper.class, method = "getOrigins")@Results({@Result(property = "id", column = "id"),@Result(property = "groupId", column = "groupId"),@Result(property = "resId", column = "resId"),@Result(property = "resGroup.id", column = "groupId"),@Result(property = "resGroup.name", column = "groupName"),@Result(property = "resGroup.type", column = "groupType"),@Result(property = "resGroup.orgCode", column = "groupOrgCode"),@Result(property = "res.id", column = "resId"),@Result(property = "res.orgCode", column = "resOrgCode"),@Result(property = "res.name", column = "resName"),@Result(property = "res.ipv4", column = "ipv4"),@Result(property = "res.ipv6", column = "ipv6"),@Result(property = "res.resEdition", column = "resEdition"),@Result(property = "res.status", column = "resStatus"),@Result(property = "res.domainName", column = "domainName")})List<ResGroupBindRes> getOrigins(UserGroupQuery query);
2.SQL如下:
public String getOrigins() {StringBuilder sql = new StringBuilder("SELECT rlg.c_id as id, rlg.c_group_id as groupId, rlg.c_res_id as resId, lg.c_name as groupName, lg.c_type as groupType, lg.c_desc as groupDesc, lg.c_org_code as groupOrgCode, r.c_org_code as resOrgCode, r.c_name as resName, r.c_ipv4 as ipv4 " +" FROM t_res_logic_group as rlg " +"LEFT JOIN t_res as r on rlg.c_res_id = r.c_id LEFT JOIN t_logic_group as lg on rlg.c_group_id = lg.c_id ");return sql.toString();}
3.映射的对象如下
@Data
public class ResGroupBindRes {private String id;/* 资源组 */private ResGroup resGroup;/* 资源 */private Res res;/* 资源id集合 */private String resId;/* 组id */private String groupId;
}
4.亲测有效