码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis多表链接查询重复字段问题

时间:2018-05-04 12:01:47      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:数据   nbsp   jdbc   style   use   语句   task   bubuko   多表   

A表和B表一对多的关系

A表

技术分享图片

B表

技术分享图片

A表和C表也是一对多关系

C表

技术分享图片

我现在向查询出A表的所有字段和B表的name字段,C表的name字段

这是我错误的sql语句,可以看出我没有查B表和C表的id字段,这也是我后来查出重复字段的原因

select a.*,b.name,c.name from A a left join B b on a.name=b.name left join C c on a.name=c.name 

 我的Mybatis配置文件是通过resultMap接收返回的对象

<resultMap id="BpmNodeTemplate" type="com.major.workflow.persistence.model.BpmNodeTemplate">
        <id property="id" column="id" jdbcType="VARCHAR"/>
        <result property="type" column="type" jdbcType="VARCHAR"/>
        <result property="title" column="title" jdbcType="VARCHAR"/>
        <result property="description" column="description" jdbcType="VARCHAR"/>
        <result property="icon" column="icon" jdbcType="VARCHAR"/>
        <collection property="groupses" ofType="com.major.workflow.persistence.model.BpmNodeGroups">
            <id column="g_id" property="id"></id>
            <result column="g_name" property="name"></result>
            <result column="node" property="node"></result>
        </collection>
        <collection property="packages" ofType="com.major.workflow.persistence.model.BpmNodePropertyPackages">
            <id column="p_id" property="id"></id>
            <result column="p_name" property="name"></result>
            <result column="node" property="node"></result>
        </collection>
</resultMap>

可以看出我定义了两个Collection来接受查询出来的list对象,也就是B表和C表的name,实体类定义的是list<A>,list<B>,对应的配置文件用collection接收从数据库查询出来的数据。

错误原因:因为我没有查出B,C两表的id所以在resultMap接收数据的时候会将多个相同的name放入collection,最终封装到list里面

技术分享图片

 

这是我查询出来的结果,最终封装的时候lUsertask这个对象的list<A>里面会出现6个数据(其实我只需要两个数据即可活动列表和q),list<B>也是一样

技术分享图片

 解决办法:把id查出来就行了,resultMap是根据id区分不同的元素,如果你id不同他就会认为你是不同的元素,这个错误在很多人看来很简单就解决了我却头疼了好长时间,网上没有找到解决办法,所以写这篇文章希望给和我一样的朋友一点帮助

 

Mybatis多表链接查询重复字段问题

标签:数据   nbsp   jdbc   style   use   语句   task   bubuko   多表   

原文地址:https://www.cnblogs.com/ymzh/p/8989395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!