Получение неверного запроса, созданного Sequelize Assocation - PullRequest
0 голосов
/ 10 января 2020

у меня два стола. Один - Order, а второй - OrderStatus.
В таблице заказов order_status_code - это foreignKey, которая ссылается на id на таблицу OrderStatus.
У меня есть определение ассоциации модели ниже.

 Order.associate = function(models) {
    // associations can be defined here
    Order.hasOne(models.OrderItem,{foreignKey: "order_id"}),
    Order.hasOne(models.OrderStatus, {foreignKey: "order_status_code"})
  };

Я получаю сообщение об ошибке ниже:

Неизвестный столбец 'OrderStatus.order_status_code' в 'списке полей

, когда я пытаюсь загрузить OrderStatus.

const orders = await Order.findAll({
        where: filter,
        include: {
            model: OrderStatus
        }
    })

Ниже приведен запрос, отображаемый на консоли.

SELECT `Order`.`id`, `Order`.`buyer_id`, `Order`.`order_status_code`, `Order`.`order_detail`, `Order`.`order_date`, `Order`.`order_number`, `Order`.`created_at`, `Order`.`updated_at`, `OrderStatus`.`id` AS `OrderStatus.id`, `OrderStatus`.`order_status_code` AS `OrderStatus.order_status_code`, `OrderStatus`.`status` AS `OrderStatus.status`, `OrderStatus`.`created_at` AS `OrderStatus.created_at`, `OrderStatus`.`updated_at` AS `OrderStatus.updated_at` FROM `Orders` AS `Order` LEFT OUTER JOIN `OrderStatuses` AS `OrderStatus` ON `Order`.`order_status_code` = `OrderStatus`.`id` WHERE `Order`.`buyer_id` = 23;

Я не знаю, почему он выбирает OrderStatus.order_status_code

1 Ответ

0 голосов
/ 10 января 2020

Я исправил это, определив attributes, чтобы выбрать из включенной модели, и это решило проблему на данный момент.

const orders = await Order.findAll({
        where: filter,
        include: {
            model: OrderStatus,
            attributes:["status"]
        }
    })
...