如何实现级联触发器?

问题描述

我有两门课: A类:Field1(字符串)、Field2(数字) B类:Field3(指向类1的指针),Field4(字符串)

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

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

因为,如果在 Class B 的上下文中没有检测到 Class A 中的此更新,则 Class B 中的数据将不同步!

解决方法

你可以这样做:

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 });
  }
});