【问题标题】:Typeorm get relations for array column of idsTypeorm获取ID数组列的关系
【发布时间】:2019-09-05 19:42:25
【问题描述】:

我希望在 Invoice 中添加一列 id's 以及发票中的项目。

我收到了错误

未找到 Invoice#invoiceItems 的实体元数据。

我已经尝试了这两个选项:

class Invoice {

  @OneToMany(type => InvoiceItem, invoiceItem => invoiceItem.id)
  @JoinColumn()
  invoiceItems: InvoiceItem[]
  @RelationId((self: Invoice) => self.invoiceItems)
  invoiceItemIds: number[]

}

class Invoice {

  @OneToMany(type => InvoiceItem, invoiceItem => invoiceItem.id)
  @JoinColumn()
  invoiceItems: InvoiceItem[]
  @Column({ type: PostgresColumns.number, array: true, nullable: false, default: {} })
  invoiceItemIds: number[]

如何为 id 数组添加关系?

【问题讨论】:

    标签: postgresql typeorm


    【解决方案1】:

    您不能将@JoinColumn 用于@OneToMany(请参阅docs),您需要在您的 InvoiceItem 类中进行配置:

    @Entity()
    class Invoice { 
        @OneToMany(type => InvoiceItem, invoiceItem => invoiceItem.invoice) 
        invoiceItems: InvoiceItem[];
    
        @RelationId((self: Invoice) => self.invoiceItems) 
        invoiceItemIds: number[] 
    }
    
    @Entity()
    class InvoiceItem { 
        ...
        @ManyToOne(type => Invoice, invoice => invoice.invoiceItems) 
        invoice: Invoice;
        ...
    }
    

    我还没有使用过@RelationId,但如果您正确加入 InvoiceItems,这应该可以工作。

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多