如何更新sequelize中的hasMany关联表

时间:2020-05-04 02:20:33

标签: node.js orm sequelize.js sequelize-hooks

我有两个表A-订单表和B-订单明细表。订单与订单详细信息具有一对多关系。

使用续集创建记录很容易。但是,一次调用似乎不可能更新记录。

型号:

    Orders.hasMany(models.OrderDetails);

    OrderDetails.belongsTo(models.Orders, {
      foreignKey: 'specialOrderId',
      targetKey: 'id',
      as: 'specialOrder'
    });

对于创建:

    return models.sequelize.transaction(tx =>
        models.Orders.create(OrderDetailsParams, {
          include: [models.OrderDetails],
          transaction: tx
        }));

对于更新,我必须这样做:

  return models.Orders.update(OrdersParams, {
    where: {
      id: id
    },
    required: true,
  }).then((Orders) => {
    if(Orders[0] !== 0) {
      sequelize.Promise.each(OrderDetails, (items) => {
        return models.OrderDetails.findOne({
        where: {
          OrderId: id,
          itemId: items.itemId
        }
      });

如何在一个电话中对其进行更新?

方言:MSSQL-不支持在bulkcreate中批量更新/更新或updateOnDuplicate。

我尝试了很多方法,例如onUpdate标志并将其设置为true或使用build和save实例。

用hasMany关联更新记录的最佳解决方案是什么?

0 个答案:

没有答案