Как заставить Sequelize обрабатывать внешние ключи объединенной таблицы как составной первичный ключ? Я думал, что это делается по умолчанию, но когда я попытался сохранить свой экземпляр UserMenuItem
(который представляет собой таблицу соединений между User
и MenuItem
), получил эту ошибку: Error: You attempted to save an instance with no primary key, this is not allowed since it would result in a global update
.
My ассоциации определяются следующим образом:
models.User.hasMany(models.UserMenuItem, { foreignKey: 'userID', onDelete: 'CASCADE' });
models.UserMenuItem.belongsTo(models.User, { foreignKey: 'userID', onDelete: 'CASCADE' });
models.MenuItem.hasMany(models.UserMenuItem, { foreignKey: 'menuItemID', onDelete: 'CASCADE' });
models.UserMenuItem.belongsTo(models.MenuItem, { foreignKey: 'menuItemID', onDelete: 'CASCADE' });
models.MenuItem.belongsToMany(models.User, { through: models.UserMenuItem, foreignKey: 'menuItemID', onDelete: 'CASCADE' }); // I tried adding "otherKey: 'userID'" as well
models.User.belongsToMany(models.MenuItem, { through: models.UserMenuItem, foreignKey: 'userID', onDelete: 'CASCADE' }); I tried adding "otherKey: 'menuItemID'" as well
Я не включаю определения моделей, поскольку не думаю, что они актуальны. User
и MenuItem
имеют PK под названием ID
, а таблица соединения имеет некоторые дополнительные поля данных, кроме FK.
Возможно ли это вообще, или мне нужно добавить ненужный PK в соединение стол?