[英]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'}
]
}
);
這些已與sequelize 3一起使用,最近我更新為sequelize 4.4.2,它不會引發錯誤,但是未填充表mediaGenre。
有什么可能是錯誤的主意嗎?
參考關聯后,您是否嘗試過同步? 我遇到了這個問題,當我致電進行同步時(強制為false,如果您不想刪除您的架構並重新創建,這很重要),則創建了聯結表。
如果您使用的是sequelize-cli,還請注意,在此版本中,不再支持classMethods。 取而代之的是,您向模型添加一個名為associate的方法,該方法將在您的models / index.js中調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.