关于Mybtis中一对多查询时,只能查询出来一条的问题

今天搞了一下SpringBoot整合Mybatis,顺便突然想联系下好久不用的一对多,多对多等。

这里就说一下一对多吧,如.一个班级中,一个老师对应多个学生,那么在java中就是老师的实体类中包含了一个List

多对一,一样就是反过来。

多对多就是多个老师对应多个学生,最好的解决多对多方法就是建立一个第三方表。这里就不详细说明了。

 

步入正题

在做一对多查询的时候,查询一个部门下多个员工的时候,每次查询出来都是一条,和预期想的不一样。

只能查询出一条的xml(错误的,因为两个ID造成了混淆)


        
        
        
             
            
            
            
            
        
    

    

显示结果(错误的显示)

关于Mybtis中一对多查询时,只能查询出来一条的问题_第1张图片

这明显是不对的,因为我的表中的员工有很多数据。

 

最后发现,两个主键的ID相同了,造成了混淆,然后就修改了一个主键id,修改成了一个其他的别名

修改后


        
        
        
             
            
            
            
            
        
    

    

修改别名后运行效果

关于Mybtis中一对多查询时,只能查询出来一条的问题_第2张图片

到这里其实已经解决的差不多了,然后发现每个里面的id的值为null,原因是因为我们在mapper修改了ID的别名

导致与数据库映射对应不上...那么我们可以把我们数据库中的表中id修改成emp_id

这样就和mapper的xml文件对应上了

关于Mybtis中一对多查询时,只能查询出来一条的问题_第3张图片

这样的话再次运行

关于Mybtis中一对多查询时,只能查询出来一条的问题_第4张图片

现在已经全部正常显示...

 

后记

出现这种错误一般都是在自己测试的时候随意写ID,在工作中使用的时候一般不会出现这种问题,因为每个表肯定id和字段不会设置重复的。

你可能感兴趣的:(java框架,Mybtis,Spring,Boot,java,mysql)