Spring中用Mybatis注解查询映射多个对象

1.映射写法如下

java 复制代码
@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如下:

java 复制代码
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.映射的对象如下

java 复制代码
@Data
public class ResGroupBindRes {

    private String id;
    /* 资源组 */
    private ResGroup resGroup;

    /* 资源 */
    private Res res;

    /* 资源id集合 */
    private String resId;

    /* 组id */
    private String groupId;
}

4.亲测有效

相关推荐
步行cgn10 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
霸道流氓气质11 小时前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
captain37612 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
步行cgn13 小时前
Spring MVC + Thymeleaf 模板解析失败:从 500 错误到页面正常显示
java·spring·mvc
学到老活到老14 小时前
第 24 集:配置文件写了 80,Spring Boot 为什么读到 90?
java·后端·spring
Flynn Liang14 小时前
RAG 答非所问/幻觉怎么破?Spring AI QuestionAnswerAdvisor 召回优化实战(TopK/重排/混合检索)
人工智能·算法·spring·rag·幻觉·springai
liminla!14 小时前
SQL 从入门到进阶:语法速查与实战练习(完整优化版)
数据库·sql·算法
二哈赛车手16 小时前
新人笔记---hermes定时功能设计,具体讲解以及可优化点
java·人工智能·笔记·spring·ai·typescript
ZWZhangYu16 小时前
从 Dify 实践理解大模型上下文缓存
java·后端·spring
l1t17 小时前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb