You need to enable JavaScript to run this app. TypeORM + Postgres配置一对一关系后关联列值为null问题求解
优惠活动
大模型
产品
解决方案
定价
更多

TypeORM + Postgres配置一对一关系后关联列值为null问题求解

问题原因及解决方法

你需要补全两处配置/操作:

  • 第一,给一对一关联加级联保存配置,TypeORM默认不会自动保存关联的实体,需要显式开启级联操作:
    修改ItemEntity的@OneToOne注解配置:
@Entity('item')
export class ItemEntity {
  @PrimaryColumn('integer')
  id: number;

  // 新增cascade配置,true表示所有操作都级联,也可以按需指定为['insert', 'update']
  @OneToOne(() => ItemNameEntity, { cascade: true })
  @JoinColumn()
  name: ItemNameEntity;

  // ... other props
}
  • 第二,插入数据必须调用对应Repository的save()方法,不能使用insert()、createQueryBuilder.insert()等底层插入接口:
    save()是TypeORM提供的高级操作方法,会自动处理关联实体的级联保存、关联ID回填逻辑,而底层插入接口只会操作单表,不会处理关联逻辑。正确示例:
// 假设你已经注入了ItemRepository
await itemRepository.save({
  id: 26,
  name: { en: 'English name', fr: 'French name' },
})

完成以上两处调整后,插入时会自动先写入item_name表的记录,再把生成的id回填到item表的nameId字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 06:42:04