You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeORM+NestJS带自定义字段ManyToMany关联findOne无法获取关联数据

问题原因

你当前的查询仅配置加载了Company到ExternalAppCompanies的第一层关联,ExternalAppCompanies实体内部关联的externalApp属于第二层嵌套关联,TypeORM默认不会自动加载嵌套层级的关联,需要显式指定加载规则。

解决方案

方案1:点语法拼接关联路径(适用于所有TypeORM版本)

直接在relations数组中新增嵌套关联的路径external_app_companies.externalApp即可:

this.companyRepository.findOne({ 
  where: { id: id }, 
  relations: ['users', 'external_app_companies', 'external_app_companies.externalApp'] 
})

方案2:对象式关联配置(推荐TypeORM 0.3.x+版本使用)

层级更清晰,避免长字符串拼接出错:

this.companyRepository.findOne({ 
  where: { id: id }, 
  relations: {
    users: true,
    external_app_companies: {
      externalApp: true
    }
  } 
})

修改后返回的external_app_companies字段中就会包含完整的externalApp关联实体数据,如果后续需要加载更深层级的关联,按照相同的嵌套规则补充配置即可。

内容的提问来源于stack exchange,提问作者Vinibr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:24:06