【已解决】关于MyBatis的collection集合中只能取到一条数据的问题

一、问题

在涉及多表查询的时候,使用collection元素来映射集合属性时,出现了只能查询到一条数据的情况,但用sql语句在数据库中查询会有多条记录。

二、原因

如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条。所以涉及查询所用的表的主键的命名不要相同,否则会混淆。

三、解决

如果关联查询的两个表的主键已经相同了,如表早就已经建好了,现在也不可能改表字段了,那么只需要查询时给关联表查询字段给个不一样的别名即可。

复制代码
<!-- 通用查询映射结果 -->
    <resultMap id="UserResultMap" type="com.gd.mqtest.domain.User">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="age" property="age"/>
        <result column="email" property="email"/>
        <!--<collection property="userDetails" javaType="java.util.ArrayList" ofType="com.gd.mqtest.domain.UserDetail">-->
        <!--    <id column="t_id" property="id" />-->
        <!--    <result column="user_id" property="userId" />-->
        <!--    <result column="color" property="color" />-->
        <!--</collection>-->
    </resultMap>

    <select id="select" resultMap="UserResultMap">
        select u.id, u.name, u.age, u.email,ud.id t_id, ud.user_id, ud.color from user u join user_detail ud on u.id=ud.user_id
    </select>
相关推荐
前端 贾公子22 分钟前
LangGraph == 图的状态(State)管理 (下)
运维·服务器·数据库
zlwool32 分钟前
机械行业ERP与进销存的合规选型边界
数据库·erp
梦想的颜色38 分钟前
【AI速览】RAG 向量数据库选型:Milvus、Chroma、Qdrant、PGVector 全维度横向对比
数据库·milvus·chroma·rag·pgvector·向量库·qdrant
小溪学编程1 小时前
向量数据库 Milvus 基础实践:从入门到上手
数据库·milvus
数据最前线1 小时前
雪上加霜,Oracle向蓝色巨人最后的阵地发起挑战
数据库·oracle
于眠牧北1 小时前
Charles配置指定域名抓取和雷电模拟器中抓取APP接口配置
数据库·redis·缓存
福娃筱欢2 小时前
57014 canceling statement due to user request(金仓 KingbaseES)
数据库·kingbase·金仓数据库
ClouGence2 小时前
SAP HANA 数据同步遇到长事务,如何兼顾实时性与完整性?
数据库·后端
数据库小学妹2 小时前
数据库管理工具有哪些?2026主流工具分类与选型对照
数据库·数据库管理工具·数据库工具·信创数据库·数据库客户端
bingHHB2 小时前
销售订单同步实战:MES生产领料/补料→金蝶材料出库
数据库·集成测试