【问题标题】:get associations with belongsToMany in sequelize.js在 sequelize.js 中获取与 belongsToMany 的关联
【发布时间】:2017-03-02 07:16:36
【问题描述】:

我通过 UserDevice 连接表在 User 和 Device 模型之间建立了多对多关系:

    device.belongsToMany(user, {
        through: {
            model: userDevice
        },
        foreignKey: "deviceId",
        as: "customers"
    });

    user.belongsToMany(device, {
        through: {
            model: userDevice
        },
        foreignKey: "customerId",
        as: "devices"
    });

    setCustomers: Sequelize.BelongsToManySetAssociationsMixin<UserInstance, string, UserDeviceAttribute>;
    getCustomers: Sequelize.BelongsToManyGetAssociationsMixin<UserInstance>;

我可以找到设备并正确填充客户:

    this.db.models.Device.findAll({
        include: [{
            model: User,
            as: "customers"
        }]

我不知道如何在其他情况下填充客户,即当我手动设置客户时。现在我正在尝试类似的东西:

        return device.setCustomers(customers)
        .then(() => {
            return device.getCustomers();
        })
        .then((users) => {
            device.setAttributes("customers", users);
            return device;
        });

但它不起作用,setAttributes 没有设置客户字段。

【问题讨论】:

    标签: node.js typescript orm sequelize.js


    【解决方案1】:

    答案就在问题中。我今天遇到同样问题时发现了这个错误。 https://github.com/sequelize/sequelize/blob/master/lib/model.js#L3483

    setAttributes 似乎是 sequelize 的保留方法。

    【讨论】:

      猜你喜欢
      • 2017-02-16
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多