mybatis中级联查询后如何处理两个表的相同字段

发布于 2021-12-05 21:37:15 字数 2431 浏览 904 评论 9

**mybatis中级联查询后如何处理两个表的相同字段**

现在出来了一个问题:我级联查询出来后,放置一个在Dept中,发现其中List中的employee对象中的status它直接是Dept的内容,并没有去找自己的内容。


部门:

public class Dept {
	
	private Integer id ;
	private String name ;
	private String address ;
	private String status ; //状态位
	
	private List<Employee> employees ;
	}


 

员工:

public class Employee {
	
	private int id ;
	private String name;
	private String address ;
	private String status ; //状态位
}

 

 

级联映射表:

<resultMap type="Dept" id="resultDeptMap">
        <result property="id" column="d_id" />
        <result property="name" column="d_name" />
        <result property="address" column="d_address" />
        <result property="status" column="status" />
        
        <!-- 一对多 List 列表 
            collection:对关联查询到的多条记录映射到集合中
        -->
        <collection property="employees" ofType="com.wm.mybatis.POJO.Employee" column="d_id" >
            <id property="id" column="e_id" javaType="int" jdbcType="INTEGER"/>
            <result property="name" column="e_name" javaType="string" jdbcType="VARCHAR"/>
            <result property="address" column="e_address" javaType="string" jdbcType="VARCHAR"/>
            <result property="d_id" column="d_id" javaType="int" jdbcType="INTEGER"/>
            <result property="status" column="status" />
        </collection>
        
    </resultMap>  


 


查询出来的结果:List<Employee>中Employee的status状态都是Dept的status,它没有对应到自己的状态位去。


请问大神们,怎么解决??有遇到过的没呢?


 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

归途 2021-12-06 11:25:17

已经解决了,多谢各位!

有一篇文章,比较详细:

http://blog.csdn.net/xzm_rainbow/article/details/15336933

 

绝影如岚 2021-12-06 11:25:07

这个我只是想学习一下mybatis中的级联查询中的一对多关系,但是结果发现 相同字段的,它就只读了前面的,没有一一对应

臻嫒无言 2021-12-06 11:24:10

建议是员工表关联部门表  而不是部门表中放员工集合  设计表的时候要考虑谁当谁的外键  员工表中添加部门ID作为外键  关联部门表 这样子很好处理两者之间的关系

风透绣罗衣 2021-12-06 11:17:25

select status 'd_status' 这样加

温柔少女心 2021-12-06 11:16:49

别的字段加前缀d_  e_ 为何status不加?加了就解决了

爱的那么颓废 2021-12-06 11:08:39

ok了,不仅要在select那把重复字段令别名,还要修改 映射文件,就是把别名与自己的BEAN的属性对应起来,不然的话 会找不到的。

甜柠檬 2021-12-06 11:04:48

回复
@天涯共明月 :不用,resultMap就是映射使的,property是bean的属性,column是select的属性,所以bean是不用改的

冷弦 2021-12-06 09:39:50

回复
对的,我就是修改的resultMap映射关系,多谢了!

睫毛上残留的泪 2021-12-06 06:49:30

既然是级联查询,两个不同的表相同的字段,那为何不用别名呢:比如select a.status statusa,b.status statusb,我觉得是不是因为你select 后面的参数列表没整清楚,让mybatis认为你的status就是a表的status,与b表没有任何区别。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文