У меня есть модель, где «Спичка» имеет много «MatchRoundTypes»Sequelize для NodeJS и hasMany используя ошибку UUID
Похожее имеет первичный ключ UUID matchRoundTypes ссылка Совпадает с matchesUUID в качестве своего имени столбца.
Когда я пытаюсь сделать находку на матчи, которые включает в себя MatchRoundTypes я получаю:
DEBUG: Ошибка: MatchRoundTypes не ассоциировано спичек!
мой запрос выглядит следующим образом:
Matches.findAll({where: ["isPublished = ?", true], include: [MatchRoundTypes]})
Я дал следующую команду перед всем этим:
Matches.hasMany(MatchRoundTypes, { as: 'roundMaps', foreignKey: 'matchUUID', useJunctionTable: false})
Я попытался многочисленные вариации на hasMany заявление ... в том числе и ForeignKey нет, и т.д.
Вот моя Похожее модель:
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})
Любые идеи можно только приветствовать.
Извините, что это просто ошибка вырезать и вставить ... я сокращало название таблицы для ясности ради поста и пропустило это ... отредактирует и исправит – Marc
на другую заметку ... моей таблице дано другое имя ... пока не имеет значения в моем использовании sequelize, но в объявлении obj: tableName: 'match', freezeTableName: true ... аналогично MatchRoundTypes. – Marc
Важной вещью является 'as'. Когда вы определяете, что в ассоциации hasMany, вы также должны определить его при активной загрузке. –