Hasura远程连接插入突变不适用于嵌套对象

时间:2020-08-12 09:21:07

标签: postgresql graphql hasura

我有一个关于嵌套对象关系变异的具体问题。
这是我的表格,请注意, PRIMARY DATABASE 中有两个实体,而 SECONDARY DATABASE 上有一个单独的敏感个人数据实体:

我在Use case #3 - Joining data across 2 separate databases上关注了Hasura Docs进行远程联接

patients (PRIMARY DATABASE) 
 id
 smartband_id
 personal_info_id

smartbands (PRIMARY DATABASE)
 id
 brand

personal_infos (SECONDARY DATABASE)
 id
 name
 address
 email

因此,患者具有字段 personal_info_id smartband_id (外键)
并且具有一个本地关系(称为 smartband ,并将 smartband_id 外键与 smartbands.id 字段相关联)
并具有一个远程关系(称为 personal_info ,并将 personal_info_id 和字段 personal_infos.id 连接起来)

我的实验表明,一个插入查询足以创建Patient和Smartband。 但是,无法通过单个查询同时创建“患者信息”和“个人信息”(我的猜测是由于远程模式所致)。

可以进行以下突变,但是我首先需要创建一个个人信息对象,然后传递该ID。

mutation MyMutation {
  insert_patients_one (object: {
    personal_info_id: 5
    smartband: {
      data: {
        brand: "brand1"
      }
    }
  }) {
    id
    smartband {
      id
      brand
    }
  }
}

下面的突变是不好的……

mutation MyMutation {
  insert_patients_one (object: {
    personal_info: {
      data: {
          name: "name1",
          address: "address1",
          email: "email1",
        }
    }
    smartband: {
      data: {
        brand: "brand1"
      }
    }
  }) {
    id
    smartband {
      id
      brand
    }
  }
}

...我的问题是这是否有可能,还是我只是错误地建立了关系?

0 个答案:

没有答案