2016-06-06 2 views
0

다음과 같이 sequelize 문서에 예제가 있습니다 (유사한 유스 케이스가 있습니다).Sequelize n : m 조인 테이블 1 : 로딩 관계 표시

ItemTag.hasMany(ItemTagReaction); 

나는 ItemTagReaction을 eagerload 수있는 방법 : 내가 여기에 추가로 관계를 포함 지금

ItemTagReaction = sequelize.define('item_tag_reaction', { 
    reaction_type: { 
    type: Sequelize.ENUM.apply(Sequelize, reactionTypes), 
    }, 
    tagResponse: Sequelize.STRING(256), 
}); 

:

ItemTag = sequelize.define('item_tag', { 
    tag_id: { 
    type: DataTypes.INTEGER, 
    unique: 'item_tag_taggable' 
    }, 
    taggable: { 
    type: DataTypes.STRING, 
    unique: 'item_tag_taggable' 
    }, 
    taggable_id: { 
    type: DataTypes.INTEGER, 
    unique: 'item_tag_taggable', 
    references: null 
    } 
}); 
Tag = sequelize.define('tag', { 
    name: DataTypes.STRING 
}); 

Post.belongsToMany(Tag, { 
    through: { 
    model: ItemTag, 
    unique: false, 
    scope: { 
     taggable: 'post' 
    } 
    }, 
    foreignKey: 'taggable_id', 
    constraints: false 
}); 
Tag.belongsToMany(Post, { 
    through: { 
    model: ItemTag, 
    unique: false 
    }, 
    foreignKey: 'tag_id' 
}); 

지금, 하나 개의 추가 관계 테이블을 포함해야 말할 수 게시물을 쿼리 할 때?

Post.findById(2, { 
    include: [Tag], 
}) 

위의 ^^ 작동하지만 ItemTagReaction도로드되는지 확인하지 못합니다. 포함 시키면 게시물과 관련이 없다는 오류가 발생합니다. 태그에 포함 시키려고하면 관련이 없다는 오류가 발생합니다.

Help !?

답변

0

정의에서 포스트는 태그와 관련이 있습니다. 그러나 Post와 Tag는 ItemTagReaction 및 ItemTag와 관련되지 않습니다.

ItemTagReaction을 Post 또는 Tag에 연결해야합니다. 그런 다음 (Post) 포함 시키거나 포함 시키십시오 (Tag).