Sequelize hasMany a través de otra mesa
Ok, entonces tengo los siguientes tresmodels
Módulo:
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}
)
Competencia:
Competence = sequelize.define('competence', {
id: DataTypes.INTEGER,
name: DataTypes.STRING,
organization_id: DataTypes.INTEGER,
competence_type_id: DataTypes.INTEGER
},{freezeTableName:true})
Módulo_tiene_competencia:
Module_has_competence = sequelize.define('module_has_competence', {
id: DataTypes.INTEGER,
module_id: DataTypes.INTEGER,
competence_id: DataTypes.INTEGER,
score: DataTypes.STRING
},{
freezeTableName: true}
})
Como puede ver, la relación entre las tablas es unn:m
Así que ahora quiero encontrar todos losCompetence
que unaModule
tiene:
Entonces creé la siguiente relación:
Module.hasMany(Competence, {through: Module_has_competence, foreignKey: 'module_id'});
Sin embargo, cuando intento ejecutar:
retrieveById: function (quote_id, onSuccess, onError) {
Module.find({include: [{ all: true }],where: {id: quote_id}})
.success(onSuccess).error(onError);
}
No devuelve nada. Pero si elimino la relación, solo devuelve elModule
¿Alguien puede decirme qué estoy haciendo mal?
Cuando depuro
Cuando depuro no registra ningún sql tristemente, ¿parece que solo está ignorando la llamada sql?