2012-12-07 94 views
0

現在使用MySQL和[email protected]我想使用這個新功能來獲取關聯的模型。 所以我有這樣的:在連接器DAO中關聯導致關聯導致錯誤

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語句查找子對象(Task)上的關聯。如果我添加(不必要)以下內容:

self.Task.belongsTo(self.Project); 

然後我沒有錯誤觸發,但子對象沒有被提取。 我擔心有一個bug ...

此外,我使用JSON.stringify因爲.values不起作用(undefined)。爲什麼?

回答

0

你必須來回連接兩個模型,否則你會得到那個錯誤。

如果沒有提取,.values將是未定義的。

+0

問題是我看不到會返回日誌中任務的查詢(既不是連接也不是子查詢) – Zerzio