0

使用 MySQL 和 sequelize@1.6.0-beta4 现在我想使用这个应该获取关联模型的新功能。所以我有这个:

self.Project.hasMany(self.Task, {as:'Tasks', foreignKey: 'projectID'});

然后使用以下内容:

db.models.Project.findAll({where:{id:1}, include : ['Tasks']}).success(function(project){
    console.log("With assoc: " + JSON.stringify(project) );
});

不幸的是,我收到以下错误:

node_modules/sequelize/lib/dialects/mysql/query-generator.js:143
        if (association.connectorDAO) {
                       ^
TypeError: Cannot read property 'connectorDAO' of null

如果我禁止包含语句,它运行良好,但显然不会返回关联的任务。

进入调试我发现了一些有趣的东西。该include语句在子对象(任务)上查找关联。如果我添加(不必要的)以下内容:

self.Task.belongsTo(self.Project);

然后我不再触发错误,但没有获取子对象。怕是有bug...

此外,我正在使用JSON.stringify因为.values不工作(undefined)。为什么?

4

1 回答 1

0

您必须来回连接两个模型,否则您将收到该错误。

如果没有获取任何内容,.values则将是未定义的。

于 2012-12-10T12:58:08.650 回答