[英]Sequelize has and belongs to many
有沒有一種方法可以與貫通表進行多態自關聯(例如Collection具有且屬於許多Collection)?
嘗試使http://docs.sequelizejs.com/manual/tutorial/associations.html#nm適應這種情況:
// Inside collection.js associate
Collection.belongsToMany(Collection, {
through: {
model: models.CollectionItem,
unique: false,
scope: {
collectible: 'collection'
}
},
foreignKey: 'collectibleUid',
constraints: false
});
在哪里collectionItem.js
看起來像
const CollectionItem = sequelize.define("CollectionItem", {
uid: {
type: DataTypes.BIGINT,
primaryKey: true
},
collectionUid: {
type: DataTypes.BIGINT,
allowNull: false,
unique: 'collection_item_collectible'
},
order: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0
},
collectibleUid: {
type: DataTypes.BIGINT,
allowNull: false,
references: null, // Because the column is polymorphic, we cannot say that it REFERENCES a specific table
unique: 'collection_item_collectible'
},
collectible: {
type: DataTypes.STRING,
allowNull: false,
unique: 'collection_item_collectible'
}
}, {
classMethods: {
}
});
似乎Sequelize希望我通過另一個連接/通過表來命名不同的名稱,但這實際上是在創建新表而不是獲得真正的hasAndBelongsToMany
類型關系。
錯誤:必須為多對多自關聯定義“ as”
嘗試明確並添加:
as: "CollectionItem"
as
不創建新的聯接表,它只是為關系指定了名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.