问题由来

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

person表

mybatis级联查询相同id问题

card表

mybatis级联查询相同id问题

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

数据查询

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

mybatis级联查询相同id问题

结果

mybatis级联查询相同id问题

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

But

使用mybatis查询这条信息时

mapper文件
mybatis级联查询相同id问题

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

idea结果

mybatis级联查询相同id问题
mybatis级联查询相同id问题

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

解决办法

只需将查询语句的列名c.id起个别名cid,把配置文件的colum也改成cid就正确了
mybatis级联查询相同id问题

结果
mybatis级联查询相同id问题
原因?请指教

相关文章:

  • 2021-11-19
  • 2021-11-16
  • 2021-04-24
  • 2021-04-29
  • 2022-01-15
  • 2021-08-31
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2021-07-29
相关资源
相似解决方案