现在使用 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 语句,它运行良好,但显然不会返回相关的任务。
进入调试阶段,我发现了一些有趣的事情。
include
语句在子对象(任务)上查找关联。如果我添加以下(不必要的):self.Task.belongsTo(self.Project);
然后我不再触发错误,但未获取子对象。
怕有bug。。。
此外,我正在使用
JSON.stringify
,因为 .values
不起作用( undefined
)。为什么?
最佳答案
你必须来回连接两个模型,否则你会得到那个错误。
如果未获取任何内容,则 .values
将是未定义的。
关于mysql - Sequelize 关联急切导致 connectorDAO 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13762198/