【问题标题】:TypeORM Cascade Update IssueTypeORM 级联更新问题
【发布时间】:2021-08-15 07:44:54
【问题描述】:

我将 TypeOrm 与 Postgres 一起使用。我有以下实体(缩小)

    class A {
    
     @OneToMany()
     b:B
     @OneToMany()
     c:C
    }
    class B {
      @ManyToOne()
      a: A
    }
    
    class C {
      @OneToMany()
      d: D
      @OneToMany()
      e: E
      @ManyToOne()
      a: A
    }
    class D {
      @ManyToOne()
      c: C
    }
class E {
      @ManyToOne()
      c: C
    }

当我尝试使用添加到集合 c 中的新项目来更新实体 A 时,它工作正常并且外键正在正确更新。但是,当我在更新字段 c、d 后再次尝试更新同一个实体时,我可以看到实体 C、D 的外键设置为空。我可以看到有 2 组更新语句被触发。第一个正确设置外键,第二个将键设置为空。而实体 B 并没有发生这种情况。所有 oneToMany 关系都有 { cascade: true, eager: true, onUpdate: "CASCADE", onDelete: "CASCADE" }。解决此问题的任何帮助都会有所帮助

【问题讨论】:

    标签: typeorm typeorm-datamapper node.js-typeorm


    【解决方案1】:

    出现问题是因为类 A 有一个属性,即表 c 的外键,引用表 A 中的对应列。我们不必在子类中将外键添加为 @Column .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多