簡體   English   中英

續集擁有並屬於許多

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM