Sequelize列region.region_id不存在错误

问题描述 投票:0回答:1

我错过了什么?任何帮助表示赞赏。谢谢

设施迁移文件

await queryInterface.createTable("facility", {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER,
      },
      name: {
        allowNull: false,
        type: Sequelize.STRING(256),
      },
      address: {
        allowNull: false,
        type: Sequelize.STRING(256),
      },
      region_id: {
        type: Sequelize.BIGINT,
        references: {
          model: "region",
          key: "id",
        },
      },
}

设施模型文件

sequelize.define(
  "facility",
  {
    id: {
      allowNull: false,
      autoIncrement: true,
      primaryKey: true,
      type: DataTypes.INTEGER,
    },
    name: {
      allowNull: false,
      type: DataTypes.STRING(256),
    },
    address: {
      allowNull: false,
      type: DataTypes.STRING(256),
    },
    region_id: {
      type: DataTypes.BIGINT,
    }
})

Region.belongsTo(Facility, {
  foreignKey: "region_id",
});
Facility.hasOne(Region, {
  foreignKey: "region_id",
});

Executing (default): SELECT "facility"."id", "facility"."name", "facility"."address", "facility"."region_id", "region"."id" AS "region.id", "region"."name" AS "region.name", "region"."region_id" AS "region.region_id" FROM "facility" AS "facility" LEFT OUTER JOIN "region" AS "region" ON "facility"."id" = "region"."region_id";

column region.region_id does not exist error

我尝试了这个关联,它有效,但我不知道它是如何工作的。

Facility.belongsTo(Region, {
  foreignKey: "region_id",
});
Region.hasOne(Facility, {
  foreignKey: "region_id",
});
sequelize.js sequelize-cli
1个回答
0
投票
Executing (default): SELECT "facility"."id", "facility"."name", "facility"."address", "facility"."region_id", "region"."id" AS "region.id", "region"."name" AS "region.name", "region"."region_id" AS "region.region_id" FROM "facility" AS "facility" LEFT OUTER JOIN "region" AS "region" ON "facility"."region_id" = "region"."id";

鉴于您的表之间的关系,您的选择查询需要像这样更改 需要改变

ON "facility"."id" = "region"."region_id";

到 ON“设施”。“region_id”=“区域”。“id”

© www.soinside.com 2019 - 2024. All rights reserved.