2015-11-08 2 views
0

Попытка выяснить, как правильно настроить соединения, используя Sequelize, возможно, snot поможет мне не очень хорошо разбираться в SQL в целом.Sequelize Соединения не возвращают требуемые результаты

models.farms.hasMany(models.users, {foreignKey: 'farmId'}); 
models.users.belongsTo(models.farms, {foreignKey: 'farmId'}); 

models.users.find({ 
    where: {id:33}, 
    include: [models.farms] 
}) 
.then(function(aResponse) { 
    aNext(null, aResponse); 
}) 
.catch(function(aError) { 
    aNext(aError); 
}); 

В таблице пользователи имели поле «farmId», и таблица ферм имеет такое же поле, и я пытаюсь сопоставить их с помощью, что, как мне нужно конкретные идентификаторы для ферм позже. Если я обновляю пользователей до математического «id», тогда он работает, но не «farmId», который мне нужен.

Фермы также будут иметь другие объединения, выходящие на farm_area и crop_types, возможно позже, все еще разрабатывая всю логику.

Любая помощь будет оценена по достоинству.

ответ

0

Попробуйте поставить свои ассоциации в определении модели, как

sequelize.define('users', { 
    id: DataTypes.Integer, 
    farmId: DataTypes.Integer 
}, { 
    classMethods: { 
    associate: function(models) { 
     users.belongsTo(models.farms, { 
     foreignKey: 'farmId' 
     }); 
    } 
} 

Он работал для меня при попытке использовать пользовательские имена внешних ключей.

Смежные вопросы