在我的应用程序中,我遇到了两个实体(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
实体文件似乎没有与数据库正确同步。
如果尚未在typeorm连接选项中设置synchronize:true
,则必须在数据库中为更改生成迁移并运行它们。
如果已设置synchronize:true
,请删除dist
目录并从头生成代码。
此外,您还需要设置DeliveryRequest
实体关系,如下所示:
@ManyToOne(() => Order, order => order.deliveries)