美文网首页
Mybatis一对多/多对多查询时只查出了一条数据

Mybatis一对多/多对多查询时只查出了一条数据

作者: 付戈 | 来源:发表于2018-09-08 15:43 被阅读0次
    我萌吧!

    问题描述:

    如果三表(包括了关系表)级联查询,主表和明细表的主键都是id的话,明细表的多条数据只能查询出来第一条/最后一条数据。

    三个表,权限表(Permission),权限组表(PermissionGroup),权限组与权限的关系表(PermissionPermissionGroupKey)

    原出错映射文件:

    原出错映射文件

    出错原因:

    这是因为主表和明细表的id字段名相同造成的。 问题的关键在于resultMap中如果不定义类似主键之类的能够区分每一条结果集的字段的话,会引起后面一条数据覆盖前面一条数据的现象。

    如何解决?

    解决方法一:

    修改主表或者明细表的id名,保证不一致就行。

    解决方法二:

    查询结果起别名。

    修改后的映射文件如下:

    修改后的映射文件

    相关文章

      网友评论

          本文标题:Mybatis一对多/多对多查询时只查出了一条数据

          本文链接:https://www.haomeiwen.com/subject/oazkgftx.html