Files
core/.workbuddy/memory/2026-06-29.md
赵忠林 0aa65d0195 fix(system): 修复UserMapper分页查询重复记录问题
- 解决分页查询时因sys_company多条记录导致的数据重复问题
- 将LEFT JOIN sys_company改为按tenant_id分组的子查询
- 修改后子查询仅取每个tenant_id的第一条公司记录
- 保证分页查询返回的数据不再重复
- 同步更新了编译后的目标类文件
2026-06-29 15:30:26 +08:00

754 B
Raw Blame History

2026-06-29

fix: UserMapper.xml LEFT JOIN sys_company 导致分页查询记录重复

  • 问题:SELECT * FROM sys_user WHERE is_developer = 1 只有5条记录/api/system/user/page?isDeveloper=true 返回多条重复记录
  • 原因:LEFT JOIN sys_company g ON g.tenant_id = t.tenant_id 中,一个 tenant_id 可能在 sys_company 中有多条公司记录,产生笛卡尔积
  • 修复:将 LEFT JOIN sys_company 改为子查询,按 tenant_id 分组取第一条记录
    LEFT JOIN (
        SELECT tenant_id, MAX(company_name) as company_name, MAX(company_logo) as company_logo
        FROM sys_company
        GROUP BY tenant_id
    ) g ON g.tenant_id = t.tenant_id
    
  • 同步修改了 target/classes/ 下的编译版本