![](/img/trans.png)
[英]Using sequelize belongsTo and hasOne results in a Maximum call stack size exceeded
[英]Does it have any sense using hasOne and belongsTo at the same time?
我有以下情況:
Account.belongsTo(models.Address, {
as: 'address',
foreignKey: { name: 'addressId', field: 'address_id' },
onDelete: 'RESTRICT'
});
Address.hasOne(models.Account, {
as: 'account',
foreignKey: { name: 'addressId', field: 'address_id' },
onDelete: 'RESTRICT'
});
如果我不應該同時使用它們,我不會理解。 屬於可能是,但也必須使用hasOne嗎?
一般規則:是,您應該同時定義兩者。
從實際的角度來看,如果需要在實例上調用fooInstance.setBar
和fooInstance.getBar
方法,則應該為模型Foo
定義關聯。 如果需要執行Foo.find(..., { include: [Bar] });
還應該定義關聯Foo.find(..., { include: [Bar] });
。
從概念的角度來看,您應該詢問雙向關系是否有意義。 如果Foo屬於Bar,這是否意味着Bar具有一個(或多個)Foo? 通常,該問題的答案是肯定的。
通過執行這兩個定義,您可以選擇帳戶的地址和地址的帳戶。
models.account.findAll({
include: [{
model: models.address
}]
});
models.address.findAll({
include: [{
model: models.account
}]
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.