我有一个这样的声明范本。
const Account = Sequelize.define("Account", {
account_id: {
type: DataTypes.INTEGER,
primaryKey: true,
}
}
const Student = Sequelize.define("Student", {
student_id: {
type: DataTypes.INTEGER,
primaryKey: true,
},
account_id: {
type: DataTypes.INTEGER,
unique: true,
allowNull: false,
}
}
然后我也宣布了我的联想
Account.hasOne(models.Student);
Student.belongsTo(models.Account, {
foreignKey: "account_id",
allowNull: false,
});
问题是,当我选择帐户并连接或include
学生时,它在SQL语句中查询名称为AccountAccountId
的列,然后引发一个错误,即找不到该列。
这是我的疑问
const account = await Account.findOne({
attributes: ["account_id", "is_active"],
include: [
{
model: Student,
attributes: ["student_id", "account_id"],
where: {
student_id: id,
},
},
],
});
型
错误为“on子句”中的未知列“Student.AccountAccountId”(错误号1054)(sqlstate 42S22)(调用者ID:0kxatsabmiwg49ko77ez)的数据:
我的包json依赖项:
{
"dependencies": {
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"csurf": "^1.11.0",
"dotenv": "^16.0.3",
"express": "^4.18.2",
"https": "^1.0.0",
"jsonwebtoken": "^8.5.1",
"mysql2": "^2.3.3",
"passport": "^0.6.0",
"passport-jwt": "^4.0.0",
"sequelize": "^6.25.8"
}
}
1条答案
按热度按时间sqxo8psd1#
这是定义配对关联时的典型错误:如果您在一个关联中使用外键列的名称指定了自定义
foreignKey
选项,则应在第二个关联中也指定相同的外键名称:默认情况下,Sequelize为外键列指定如下名称:型号名称Id(在本例中应为
AccountId
)。