使用范围续订复合外键

时间:2018-06-07 09:10:51

标签: node.js orm sequelize.js

Sequelize官方不支持复合外键,我喜欢用scope来实现它,详情如下:

模型(仅关联代码段)

food.associate = (models) => {
  food.hasOne(models.ingredient, {
    foreignKey: 'catagoryId',
    targetKey: 'catagoryId',
    scope: {
      PropertyId: 'PropertyId'
    }
  })
}  

输出变为:

SELECT * LEFT OUTER JOIN `ingredients` AS `ingredient` ON `food`.`catagoryId` = `ingredient`.`catagoryId` AND `ingredient`.`PropertyId` = 'PropertyId'

请注意,最后一个PropertyId变成了一个字符串,但是期望`food` .Property`

我试过``,'“,'',{},[]等,都没有按预期工作。

你可以帮忙吗?三江源

0 个答案:

没有答案