MyBatis的collection只能查询一条记录

来源:互联网 发布:化为简化阶梯型矩阵 编辑:程序博客网 时间:2024/04/26 05:45
转自 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的映射关系是通过查询出来的别名进行反射的。
原创粉丝点击