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

TypeORM多对多嵌套关联查询报错:无法读取joinColumns属性

解决TypeORM中OneToMany关联查询的joinColumns未定义错误

问题原因

你遇到的Cannot read properties of undefined (reading 'joinColumns')错误,核心原因是OneToMany关联的反向引用字段写错了。TypeORM要求OneToMany的第二个参数必须指向关联实体中对应的ManyToOne属性,而非实体的主键id。你的代码里,Product和Part的OneToMany都错误指向了Item的id字段,导致TypeORM无法识别正确关联关系,进而抛出该错误。

修复步骤

1. 修改Product实体的OneToMany关联

将@OneToMany(() => Item, item => item.id)改为指向Item中关联Product的属性:

// products/product.entity.ts
@OneToMany(() => Item, item => item.product) // 替换item.id为item.product
items: Item[];

2. 修改Part实体的OneToMany关联

同样,将@OneToMany(() => Item, item => item.id)改为指向Item中关联Part的属性:

// parts/part.entity.ts
@OneToMany(() => Item, item => item.part) // 替换item.id为item.part
items: Item[];

3. 验证关联逻辑

修改后,实体间的关联关系恢复正确:

  • Product通过items关联多个Item,Item通过product反向关联单个Product
  • Part通过items关联多个Item,Item通过part反向关联单个Part

此时调用服务层的findAll方法查询Product并关联items,TypeORM就能正确识别关联关系,不会再抛出joinColumns未定义的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:11:23