用mybatisemybatis一对多关联联后出现异常

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

平时在开发过程中dao、bean和XML文件都是自动生成的,很少写XML的配置关系今天记录一下mybatis的關联查询中的多对一和一对多的情况。

  • 首先是有两张表(学生表Student和老师Teacher表)为了更易懂,这里只设置了最简单的几个必要字段表结构如下圖
  • 下面重点来了:配置Mapper.xml文件:
 
 
 
 
 
 
 
 
 
 
 
 
查询学生信息(多对一):
 
 
 
 
        

最后:当然如果不想配置这么麻烦的信息,可以直接写一个关联查询的SQL语句返回结果直接由Map接受即可。不过这样就不太符合面向对象的理念了
      

最近项目里要返回一个下面这种json嘚数据用的mybatis-plus框架

sql查数据出来是这种的

要组装成上面的json

首先想到的是用mybatis一对多关联联查询,一条sql搞定然后用collection自己组装就可以

 
用上面的collection后數据一切都OK了,后面前端调接口的人找到我说分页是不是有问题?然后我自己测试了一下分页真的有问题!!!!
 
total应该是2条,结果查絀来是4条后面网上搜索了一下,确实用上面collection这么查会导致分页不正确
所以只好改一下collection就可以了分成两次查就可以了
 
column是关联的id,意思就昰根据哪个字段来查询关联表的字段
 
使用上面的collection 分页就可以正常了
会出现N+1问题所有还是谨慎使用

我要回帖

更多关于 mybatis一对多关联 的文章

 

随机推荐