【问题标题】:How to implement cascading triggers?如何实现级联触发器?
【发布时间】:2021-02-02 14:39:59
【问题描述】:

我有 2 节课: A类:Field1(字符串),Field2(数字) B类:Field3(指向Class 1的指针),Field4(字符串)

Field4(B 类)设置为等于 Field1(A 类)。

现在,在 A 类的 beforeSave 触发器中,如何检测其他类中的字段(例如 B 类中的 Field3)指向 A 类中的哪些字段,以便: 可以执行(自定义?)触发器,或者 可以运行一个函数, 更新 B 类中的依赖字段(在本例中为 Field4)?

因为,如果在 Class B 的上下文中没有检测到 Class A 中的这个更新,那么 Class B 中的数据就会不同步!

【问题讨论】:

    标签: parse-platform parse-server parse-cloud-code


    【解决方案1】:

    你可以这样做:

    Parse.Cloud.afterSave('ClassA', async ({ original, object }) => {
      if (original.get('field1') !== object.get('field1')) {
        const query = new Parse.Query('ClassB');
        query.equalTo('field3', object);
        const objs = await query.find({ useMasterKey: true });
        objs.forEach(obj => {
          obj.set('field4', object.get('field1'));
        });
        Parse.Object.saveAll(objs, { useMasterKey: true });
      }
    });
    

    【讨论】:

    • 感谢您的回答。问题是,我想自动化我的代码。因此,我想在不知道架构的情况下检测哪些指针指向一个对象。我不想为每个字段编写代码。因此,如果有一种方法或代码可以检测哪些所有指针(类和字段)指向正在更改的字段,请就此提出建议。再次感谢。
    • 谢谢,这很有帮助!
    猜你喜欢
    • 1970-01-01
    • 2019-02-25
    • 2019-09-19
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2014-09-08
    相关资源
    最近更新 更多