【问题标题】:Sails.js destroy instance with one-to-one associationsSails.js 销毁具有一对一关联的实例
【发布时间】:2015-02-01 20:48:10
【问题描述】:

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

如果没有,有什么方便的方法来做到这一点?

【问题讨论】:

    标签: orm sails.js


    【解决方案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 模型中执行相同的操作。

    【讨论】:

      猜你喜欢
      • 2015-06-27
      • 1970-01-01
      • 2015-02-01
      • 2015-12-18
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多