mybatis级联查询相同id问题

问题由来

当对数据库进行级联查询的时候,通常会多表联合查询,这就导致数据库两个不同的表的列名有时会一样,尤其是id。如下

person表

在这里插入图片描述

card表

在这里插入图片描述

其中c_id是person表的外键,对应card表的主键id,这里我们可以看到他们两的列名id名称一样

数据查询

使用navicat查询id为2的用户,及其card信息

在这里插入图片描述

结果

在这里插入图片描述

列名id1是为了防止重名,navicat自动给结果取的名字,结果还是正确的

But

使用mybatis查询这条信息时

mapper文件
在这里插入图片描述

查询的语句还是和navicat的一样

idea结果

在这里插入图片描述
在这里插入图片描述

你会发现,查询的是id=2的用户,但是这个用户对应的card的id也变成了2

解决办法

只需将查询语句的列名c.id起个别名cid,把配置文件的colum也改成cid就正确了
在这里插入图片描述

结果
在这里插入图片描述
原因?请指教

猜你喜欢

转载自blog.csdn.net/qq_33473340/article/details/108521616