提问者:小点点

类型为relation@ManyToOne中的更新错误


在我的应用程序中,我遇到了两个实体(Order.ts-DeliveryRequest.ts)的问题,当我使用save()更新某些列时,它会生成Order的update查询,并运行良好,但在此之后,会生成下面的查询来更新DeliveryRequest,我不知道为什么会执行这个查询:

UPDATE `tb_delivery_requests` SET `id_order` = NULL, `last_modification` = CURRENT_TIMESTAMP WHERE `id_delivery_request` = 41

然后,生成下面的错误:

Cannot add or update a child row: a foreign key constraint fails (`db_atac_moreira`.`tb_delivery_requests`, CONSTRAINT `fk_tb_delivery_control_tb_orders1` FOREIGN KEY (`id_order`) REFERENCES `tb_orders` (`id_order`) ON DELETE NO ACTION ON UPDATE NO ACTION)

这是我的实体之间的关联,按Order.ts:

null

  @OneToMany(() => DeliveryRequest, deliveryRequest => deliveryRequest.order)
  deliveries: DeliveryRequest[];

null

这是我的DeliveryRequest.ts文件中的关联:

null

  @Column()
  id_order: number;

  @ManyToOne(() => Order)
  @JoinColumn({ name: 'id_order' })
  order: Order;

null


共1个答案

匿名用户

实体文件似乎没有与数据库正确同步。

如果尚未在typeorm连接选项中设置synchronize:true,则必须在数据库中为更改生成迁移并运行它们。

如果已设置synchronize:true,请删除dist目录并从头生成代码。

此外,您还需要设置DeliveryRequest实体关系,如下所示:

@ManyToOne(() => Order, order => order.deliveries)