我是靠谱客的博主 清爽身影,最近开发中收集的这篇文章主要介绍Mybatis使用关联查询由于表名字段重复导致的问题项目场景:问题描述:原因分析:解决方案:最后测试:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

项目场景:

Mybatis使用关联查询由于表名字段重复导致的问题


问题描述:

下面代码可以看出Brand和Category表中有了重复的name字段。当我们进行关联查询时,发现category的name属性竟然赋予了外边brand的name的值。

@Data
public class Brand {
    private Long brandId;
    private String name;
    private String descript;
    private Category category;
}

@Data
public class Category{
    private Long id; //表:cat_id
    private String name; //表:name
    private Long pid; //表:parent_cid
}

在这里插入图片描述
在这里插入图片描述


原因分析:

在使用mybatis进行多表联合查询时,如果两张表中的字段名称形同,会出现无法正常映射的问题


解决方案:

改写sql语句给这个重复的字段起别名,然后映射的字段名也相应修改成别名即可
在这里插入图片描述

<resultMap id="brandCategoryMap" type="com.zcc.domain.Brand">
        <id property="brandId" column="brand_id"></id>
        <result property="name" column="name"></result>
        <result property="descript" column="descript"></result>
        <association property="category" javaType="com.zcc.domain.Category">
            <id property="id" column="cat_id"></id>
            <result property="name" column="cname"></result>
            <result property="pid" column="parent_cid"></result>
        </association>
    </resultMap>
    <select id="selectBrandAndCategory" resultMap="brandCategoryMap">
        select pb.*,pc.cat_id,pc.name cname,pc.parent_cid
        from pms_brand pb join pms_category pc on pb.catalog_id=pc.cat_id
        where brand_id=#{brandId}
    </select>

最后测试:

在这里插入图片描述

最后

以上就是清爽身影为你收集整理的Mybatis使用关联查询由于表名字段重复导致的问题项目场景:问题描述:原因分析:解决方案:最后测试:的全部内容,希望文章能够帮你解决Mybatis使用关联查询由于表名字段重复导致的问题项目场景:问题描述:原因分析:解决方案:最后测试:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部