簡體   English   中英

Sequelize 4-eagger加載時屬於多對多插入問題

[英]Sequelize 4 - belongs-To-Many insert issue on eagger loading

大家好 ,我有以下兩種模型:

const media = sequelize.define('media', {
              id: { type: Sequelize.UUID, primaryKey: true, defaultValue: Sequelize.UUIDV4 },
              name: { type: Sequelize.STRING, allowNull: false, unique:'compositeIndex' },}, { freezeTableName: true });

const mediaGenre = sequelize.define('mediaGenre', {
                  id: { type: Sequelize.UUID, primaryKey: true, defaultValue: Sequelize.UUIDV4 }}, { freezeTableName: true, name: { plural: 'mediaGenre' } });

和這兩個關系:

media.hasMany(mediaGenre, as: 'mGenre');
mediaGenre.belongsTo(media);

media.belongsToMany(genre, { through: mediaGenre });
genre.belongsToMany(media, { through: mediaGenre });

當我想創建媒體時,我要做的是:

MediaModels.media.create(
            {name: 'Hulk',
            mediaGenre: [
            { genreId: '021baab5-7fc6-4b06-aca5-e4b1ed1f3ce4' },
            { genreId: '03f069a4-dc52-4ab5-82d3-6bcd67d2d29e' }]},
            {
                include: [
                    {model: MediaModels.mediaGenre, as: 'mGenre'}
                ]
            }
        );

這些已與sequ​​elize 3一起使用,最近我更新為sequelize 4.4.2,它不會引發錯誤,但是未填充表mediaGenre。

有什么可能是錯誤的主意嗎?

參考關聯后,您是否嘗試過同步? 我遇到了這個問題,當我致電進行同步時(強制為false,如果您不想刪除您的架構並重新創建,這很重要),則創建了聯結表。

如果您使用的是sequelize-cli,還請注意,在此版本中,不再支持classMethods。 取而代之的是,您向模型添加一個名為associate的方法,該方法將在您的models / index.js中調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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