我有一个模型,其中“匹配”具有许多“ MatchRoundTypes”
匹配项具有uuid主键
matchRoundTypes引用匹配项具有matchSUUID作为其列名。
当我尝试在包含MatchRoundTypes的Matches上进行查找时,我得到:
调试:错误:MatchRoundTypes与比赛无关!
我的查询看起来像:
Matches.findAll({where: ["isPublished = ?", true], include: [MatchRoundTypes]})
在此之前,我已经发出了以下命令:
Matches.hasMany(MatchRoundTypes, { as: 'roundMaps', foreignKey: 'matchUUID', useJunctionTable: false})
我已经尝试过hasMany语句的多种变体...包括foreignKey和not等等。
这是我的Matches模型:
sequelize.define('Matches', {
uuid: {type: Seq.STRING(36), allowNull: false, primaryKey: true},
name: {type: Seq.STRING(64), allowNull: false},
}, {tableName: 'match', freezeTableName: true})
这是我的MatchRoundTypes模型:
sequelize.define('MatchRoundTypes', {
{
uuid: {type: Seq.STRING(36), allowNull: false, primaryKey: true},
roundTypeUUID: {type: Seq.STRING(36), allowNull: false},
roundName: {type: Seq.STRING(64), allowNull: true},
matchUUID: {
type: Seq.STRING(36),
references: "match",
referencesKey: "uuid",
allowNull: false
}
}, {tableName: 'matchRoundTypes', freezeTableName: true})
任何见解都是最欢迎的。
最佳答案
您在定义hasMany关联时使用别名,因此还必须告诉sequelize在进行急切加载时使用该别名:
Matches.findAll({
where: ["isPublished = ?", true],
include: [{ model: MatchRoundTypes, as: 'roundMaps' }]
})