У меня проблема с продолжением. Мне нужно использовать JOIN, но я не могу установить отношения. Это мои модели (Пользователь уменьшен, он действительно большой, и единственное поле, которое мне нужно для этого, - NR_UTILIZADOR):
var UtilizadoresModel = sequelize.define('UTILIZADORES', {
NR_UTILIZADOR: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
}
}, {
freezeTableName: true,
paranoid: true,
timestamps: true,
hooks: {
beforeCreate: (user, options) => {
return bcrypt.hash(user.PASSWORD, 10)
.then(hash => {
user.PASSWORD = hash
})
.catch(err => {
throw new Error()
})
},
},
})
var Validacoes = sequelize.define('VALIDACOES', {
NR_VALIDACAO: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
NR_VALIDADO: {
type: Sequelize.INTEGER,
allowNull: false,
references: {
model: Utilizadores,
key: 'NR_UTILIZADOR'
}
},
NR_VALIDADOR: {
type: Sequelize.INTEGER,
allowNull: false,
references: {
model: Utilizadores,
key: 'NR_UTILIZADOR'
}
},
DATA_HORA_VALIDACAO: {
type: Sequelize.DATE,
allowNull: false
},
ESTADO: {
type: Sequelize.ENUM('APROVADO', 'DESAPROVADO'),
allowNull: false
}
}, {
freezeTableName: true,
timestamps: false,
})
Я делаю это:
User.hasMany(Validacoes, {
foreignKey: 'NR_UTILIZADOR'
})
Validacoes.belongsTo(User)
Мне нужно чтобы связать NR_VALIDADO и NR_VALIDADOR из Validacoes с NR_UTILIZADOR из Utilizadores.
Когда я пытаюсь выполнить findAll с помощью include, я получаю следующее:
await User.findAll({
attributes: [
'NR_UTILIZADOR',
'NOME_UTILIZADOR',
'FREGUESIA',
'createdAt',
'NR_VALIDADOR',
],
where: {
VALIDADO: false,
deletedAt: {
[Op.ne]: null
},
ESTADO: 'DESAPROVADO'
},
order: [
['createdAt', 'ASC'],
],
include: [{
model: Validacoes
}],
paranoid: false
})
original: error: column VALIDACOES.NR_UTILIZADOR does not exist
Спасибо всем за ваше время