转载

MyBatis的collection只能查询一条记录

转自 http://blog.csdn.net/LoveCarpenter/article/details/60958710

1 深坑描述

      我数据库中有三张表,暂且记作 表A,表B,表C,他们之间的关系如下图所示:

这里写图片描述

我创建的持久化类A:

这里写图片描述

当我进行数据库查询的时候,执行的SQL语句是没有问题的,但是worktreatises两个集合总是只有一个数据(按理说work里面应该有3个数据,treatises应该有4个数据)

这里写图片描述

2 深坑原因

产生这种问题的原因,是因为两个数据库的主键都叫做id:如下图

这里写图片描述

这里写图片描述

3 深坑解决

如何解决这种问题:

  • 在Mybatis的配置文件中添加使用别名(注意sql语句也要用别名)
  • 我们修改的只是配置文件,数据库不要改变(注意:数据库不要改变)

  • 修改配置文件为别名

这里写图片描述

这里写图片描述

  • sql语句使用别名查询

这里写图片描述

  • 运行结果正确了

这里写图片描述

4.总结

      通过这个坑我们可以看出来:

  • Mybatis的映射关系是通过查询出来的别名进行反射的。
文章最后发布于: 2017-11-13 18:09:00
展开阅读全文
0 个人打赏

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览