我是靠谱客的博主 清爽身影,最近开发中收集的这篇文章主要介绍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使用关联查询由于表名字段重复导致的问题项目场景:问题描述:原因分析:解决方案:最后测试:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复