Ich habe zwei Modelle:Verknüpfung eines Sequelize-Modell auf zwei verschiedenen Feldern aus einem anderen Modell
BusinessEntity
undInvoice
Ich möchte die Invoice
ein seller
und ein buyer
haben, beide zeigen auf BusinessEntity
Datensätze. Also, ich erwarte in der invoices
Tabelle (das Invoice
Modell) zwei Felder: seller_id
und buyer_id
.
Also, habe ich etwas wie folgt aus:
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" });
Es ist nicht natürlich erscheinen mir Invoice.belongsTo(BusinessEntity)
zu nennen, aber wenn ich tun:
BusinessEntity.belongsTo(Invoice, { as: "seller" });
BusinessEntity.belongsTo(Invoice, { as: "buyer" });
... die Spalten seller_id
und buyer_id
werden nicht erstellt. Warum?
eingefügt I erfolgreich eine Rechnung, IDs aus der Tabelle business_entities
assiging.
Wie soll ich die Invoice
abfragen soll, wenn ich die seller
und die buyer
in der Ausgabe include
wollen?
Ich habe versucht:
Invoice.findOne({ include: [BusinessEntity] })
Aber das nicht mit diesem Fehler:
business_entity is not associated to invoice!
Was ist der richtige Weg, dies zu tun? Wie löst man das Problem?