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);
その後、エラーは発生しなくなりましたが、子オブジェクトはフェッチされませんでした。バグがあって怖い…
その上、私は動作していないJSON.stringify
ので使用しています.values
(undefined
)。なんで?