【发布时间】:2015-05-23 19:26:32
【问题描述】:
好的,所以我有以下三个models
模块:
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 = 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
所以现在我想找到Module 拥有的所有Competence:
所以我创建了以下关系:
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
-
您确定您正在访问该代码吗?也可以尝试使用 findAll 来测试 find 是否有问题
-
@dege 代码是可访问的,因为一旦我删除它收集模块的行
标签: javascript node.js orm sequelize.js