Search code examples
javascriptnode.jstypeorm

Wrong update in relation @ManyToOne with TypeORM


in my app I'm having problem with 2 entities (Order.ts - DeliveryRequest.ts), when I use save() in Order to update some columns it's generated the update query for Order and its run fine but right after that the query below is generated to update DeliveryRequest, and I dont wknow why this query is executed:

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

Then, the error below is generated:

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)

This is the association between my entities, in Order.ts:

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

And this is the association in my DeliveryRequest.ts file:

  @Column()
  id_order: number;

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


Solution

  • Could you try setting your DeliveryRequest entity relationship like this?

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