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
相关产品推荐
相关产品推荐

