项目场景:
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使用关联查询由于表名字段重复导致内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复