Sequelize-当两个表具有belongsToMany关联时,删除联结表中的行

时间:2019-05-03 10:29:28

标签: node.js sequelize.js has-and-belongs-to-many cascade

我有两个连续的表,它们彼此之间属于属于许多关联。我有第三个联结表,当从两个表中删除一行时,我想从联结表中删除级联行。

续集版本:3.23.0

我尝试了各种可能性来创建序列表

a)在关联内部添加钩子 b)在联结表关联内添加外键 c)从sequelize迁移脚本(https://sequelize.readthedocs.io/en/v3/docs/migrations/)(以前在项目中未使用过)

以下是我的续集模型

  1. 产品型号
var product = sequelize.define('product', {
    name: { 
      type: DataTypes.STRING, 
      allowNull: false 
     },
    {
      timestamps: false,
      classMethods: {
        associate: function (models) {

 product.belongsToMany(models.users, {through: 'productUsers', onDelete: 'cascade'});
        }
      }
    });

2。用户模型:

  var users = sequelize.define('users', {
    name: {type: DataTypes.STRING, allowNull: false, unique: true},
  },
  {
    classMethods: {
      associate: function(models) {
      users.belongsToMany(models.product, {through:'productUsers', onDelete: 'cascade'});

      }
    }
  });
  1. productUsers联结表
var productUsers = sequelize.define('productUsers', {

}, {
classMethods: {
associate: function (models) {
productUsers.belongsTo(models.product,{onDelete:'cascade'});
productUsers.belongsTo(models.model,{onDelete:'cascade'});
}
}
},
{
timestamps: true
});

现在,我要在删除产品或删除用户时从productUsers表中删除级联的一行。但是它没有从联结表中删除任何内容。

0 个答案:

没有答案