我有以下设置:
var Module = sequelize.define('module', {
id: DataTypes.INTEGER,
name: DataTypes.STRING,
description: DataTypes.STRING,
category_id: DataTypes.STRING,
module_type_id: DataTypes.STRING,
gives_score: DataTypes.INTEGER,
duration: DataTypes.STRING,
price: DataTypes.STRING
}, {
freezeTableName: true,})
Organization_has_module
Organization_has_module = sequelize.define('organization_has_module', {
id: DataTypes.INTEGER,
module_id: DataTypes.INTEGER,
organization_id: DataTypes.INTEGER
},{freezeTableName:true});
Module.hasMany(Organization_has_module, {foreignKey: 'module_id'});
现在我试图找到Organization_has_module.organization_id = 1
但我不太清楚该怎么做
我有以下代码:
Module.findAll({include: [{ all: true }],where: {module_type_id: type_id}})
.success(onSuccess).error(onError);
答案 0 :(得分:2)
我认为这与您的其他问题是同一个问题?
.hasMany()
没有引用N:M
关系,而是引用1:M
。由于您的联接表,您需要.belongsToMany()
来引用N:M
。
Organization.belongsToMany(Module, {
through: Organization_has_module,
as: 'module',
foreignKey: 'module_id'
})
Module.belongsToMany(Organization, {
through: Organization_has_module,
as: 'organization',
foreignKey: 'organization_id'
})