Хорошо, так у меня есть следующие три models
Sequelize hasMany через другую таблицу
Модуль:
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}
)
Competence:
Competence = sequelize.define('competence', {
id: DataTypes.INTEGER,
name: DataTypes.STRING,
organization_id: DataTypes.INTEGER,
competence_type_id: DataTypes.INTEGER
},{freezeTableName:true})
Module_has_competence:
Module_has_competence = sequelize.define('module_has_competence', {
id: DataTypes.INTEGER,
module_id: DataTypes.INTEGER,
competence_id: DataTypes.INTEGER,
score: DataTypes.STRING
},{
freezeTableName: true}
})
Как вы можете видеть связь между таблицами являются n:m
Так что теперь я хочу, чтобы найти все Competence
что Module
имеет:
Так я создал следующее соотношение:
Module.hasMany(Competence, {through: Module_has_competence, foreignKey: 'module_id'});
Однако, когда я пытаюсь запустить:
retrieveById: function (quote_id, onSuccess, onError) {
Module.find({include: [{ all: true }],where: {id: quote_id}})
.success(onSuccess).error(onError);
}
ничего не возвращает. Но если я удалю отношения, то он возвращает только Module
Может ли кто-нибудь сказать мне, что я делаю неправильно?
Когда я отладки
Когда я отладки не записывает в журнал никаких SQL, к сожалению, это, кажется, он просто игнорирует вызов SQL?
Вы можете разместить запросы SQL, полученные этими утверждениями? Кроме того, состояние вашего БД в этот момент было бы полезно –
@ DanRocha Конечно, держитесь, пожалуйста: D –
@DanRocha К сожалению, он не публикует никаких sql: s все мои другие функции, но этого нет: s –