У меня есть две модели sequelize с отношением «один ко многим». Назовем их «Владелец и собственность».Sequelize.js вставить модель с отношением «один ко многим»
Предположим, что они определены с использованием сиквелиса sails-hook как такового (упрощенного).
//Owner.js
module.exports = {
options: {
tableName: 'owner'
},
attributes: {
id: {
type: Sequelize.BIGINT,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING(255)
},
associations: function() {
Owner.hasMany(Property, {
foreignKey: {
name: 'owner_id'
}
});
}
}
//Property.js
module.exports = {
options: {
tableName: 'property'
},
attributes: {
id: {
type: Sequelize.BIGINT,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING(255)
}
}
Предположим, я хочу вставить запись владельца в свою базу данных и вставить несколько записей свойств, чтобы связаться с владельцем. Как мне это сделать?
Я ищу что-то вроде
Owner.create({name:'nice owner',
property: [{name:'nice property'},
{name:'ugly property'}]});
Удивительно, я не могу найти это в документации Sequelize.
Я боролся несколько часов, потому что синтаксис был slighty отличается в последней релиз, для тех, кто не может выполнить эту работу, я рекомендую вам проверить интеграционные тесты, чтобы увидеть, как использовать метод create в самой последней версии https://github.com/sequelize/sequelize/blob/master/test /integration/model/create/include.test.js – diedu
Я бы рекомендовал также использовать транзакцию для третьего примера 'create', потому что иначе, если INSERT свойств не удастся, вы застряли с полузавершенным владельцем. – pkyeck