2017-06-19 28 views
2

我有兩個型號:鏈接一個Sequelize模型到兩個不同的領域,從另一個模型

  • BusinessEntity
  • Invoice

我想Invoice有一個sellerbuyer,兩者都指向BusinessEntity記錄。所以,我希望在invoices表(Invoice型號)有兩個字段:seller_idbuyer_id

所以,我做了這樣的事情:

BusinessEntity
const BusinessEntity = sequelize.define("business_entity", { 
    display_name: Sequelize.STRING 
}); 
Invoice
const Invoice = sequelize.define("invoice", { 
    series: Sequelize.STRING, 
    number: Sequelize.INTEGER, 
    ... 
}); 

// Indeed, this creates the seller_id and buyer_id fields in the invoice 
Invoice.belongsTo(BusinessEntity, { as: "seller" }); 
Invoice.belongsTo(BusinessEntity, { as: "buyer" }); 

似乎不自然的我打電話給Invoice.belongsTo(BusinessEntity),但如果我這樣做:

BusinessEntity.belongsTo(Invoice, { as: "seller" }); 
BusinessEntity.belongsTo(Invoice, { as: "buyer" }); 

... seller_idbuyer_id列根本不創建。爲什麼?


我成功插入的發票,從business_entities表assiging IDS。

我該如何查詢Invoice當我想includesellerbuyer在輸出?

我想:

Invoice.findOne({ include: [BusinessEntity] }) 

但是失敗,此錯誤:

business_entity is not associated to invoice! 

什麼是做到這一點的正確方法?如何解決問題?

回答

4

當您執行findOne查詢時:Invoice.findOne({ include: [BusinessEntity] })還必須提及別名。

所以,你需要查詢的格式如下:

相關問題