Sequelize模型中的双重关联

时间:2017-01-09 20:32:27

标签: mysql node.js orm sequelize.js

我有这些关联

// Tasks.js
sequelize.models.tasks.belongsTo(sequelize.models.users, {
    foreignKey: {
        type: DataTypes.INTEGER,
        field: 'ASSIGNEE',
        allowNull: true
    },
    as: 'assignee'
});

sequelize.models.tasks.belongsTo(sequelize.models.users, {
    foreignKey: {
        type: DataTypes.INTEGER,
        field: 'REPORTER',
        allowNull: true
    },
    as: 'reporter'
});

// Users.js
sequelize.models.users.hasMany(sequelize.models.tasks, { as: 'assignee' });
sequelize.models.users.hasMany(sequelize.models.tasks, { as: 'reporter' });

这些关联创建了两个FK:ASSIGNEE和REPORTER。但它也创建了另一个:userId。 我知道这个" userId" FK是默认的,但我不想要它。我想要的是我在协会中描述的这两个。

如何让sequelize忽略默认值并创建我期望的内容?

1 个答案:

答案 0 :(得分:0)

更改用户关联

sequelize.models.users.hasMany(sequelize.models.tasks, { as: 'assignee' ,foreignKey :'ASSIGNEE'});
sequelize.models.users.hasMany(sequelize.models.tasks, { as: 'reporter' ,foreignKey :'REPORTER'});