当前位置: 首页 > 知识库问答 >
问题:

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

韩麒
2023-03-14

在我的应用程序中,我遇到了两个实体(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个答案

公良征
2023-03-14

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

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

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

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

@ManyToOne(() => Order, order => order.deliveries)
 类似资料:
  • 注:内容翻译自官网文档 Language Guide (proto3) 中的 Updating A Message Type 一节 如果一个已有的消息类型不再满足需要- 例如, 想增加额外的字段 - 但是依然希望原有格式创建的代码可以继续使用, 不用担心. 可以很简单的更新消息类型而不用打破现有的代码.仅仅需要记住下面的规则: 不要改动任何现有字段的数字标签 如果添加新的字段时, 使用"老"消息格

  • 我的表单上有一个组件(id="theDocument"),我想在某些情况下以不同的方式呈现。 如果是我的豆子。文档'存在,我希望它呈现为p:commandLink,但如果它不存在,我希望它呈现为纯文本,例如h:outputText。 此条件将在文件上传后更改(上传后,myBean.theDocument将存在,因此我希望它呈现为p:命令链接)。 所以在我的p: fileUpload上,我有这样的东

  • 我需要使用SpringDataJPA将实体类的两列映射为postgres中的json。阅读多个stackoverflow post和baeldung post后, 如何使用JPA将MapJSON列映射到Java对象 https://www.baeldung.com/hibernate-persist-json-object 我做了如下配置。但是,我面临错误"ERROR:列"标题"是json类型,但

  • 有一个实体框: 和实体内容: 如果我把 (级联=级联类型。删除) 在Box的“@ManyToOne”中,我删除了该Box,保留了子实体(使Box内容可用于另一个Box)。 相反,如果我使用 (级联=级联型。全部) 将删除框,包括子实体(删除框及其内容)。 假设在某些情况下,需要删除框及其内容。尽管相反,有时我只需要删除框,但保留其内容。 如何根据以上内容选择所需的级联类型?

  • 我在这段代码上得到这个错误! 错误:无法将预期类型(integer->integer->Integer)->(integer->Integer)->integer->Integer'与实际类型Integer匹配

  • 问题内容: ElasticSearch文档尚不清楚如何执行此操作。 我索引了一些推文,其中一个字段created_at被索引为字符串而不是日期。我找不到如何通过curl调用对该更改重新索引。如果重新编制索引是一个复杂的过程,那么我宁愿只是删除其中的内容并重新开始。但是,我也找不到如何指定字段类型! 任何帮助是极大的赞赏。 问题答案: 您需要使用Put Mapping AP I 定义映射。 日期可以