Sails.js使用一对一关联销毁实例

时间:2015-02-01 20:48:11

标签: orm sails.js

我正在研究一个具有一对一和单向关联的属性的模型。当我销毁该主模型的实例时,它是否也会破坏关联的实例?

如果没有,那么这样做的方便方法是什么?

1 个答案:

答案 0 :(得分:1)

目前,Waterline不支持级联删除记录。 现在这样做的一种相对干净的方法是在模型中添加afterDestroy钩子。

// Pet.js
module.exports = {
  attributes: {
    owner: {
      model: 'person'
    }
  }
}

// Person.js
module.exports = {
  attributes: {
    pet: {
      model: 'pet'
    }
  },

  afterDestroy: function(deletedRecords, next) {
    async.each(deletedRecords, function(person, cb) {
        Pet.destroy({owner: person.pet}, cb);
      }
    ], next);
  }
}

afterDestroy函数将在每次删除Person条记录时运行。如果您希望在删除宠物时删除人员,则需要在Pet模型中执行相同的操作。