AppSync @connection 不进行双向连接

AppSync @connection not making two-way connection

我正在通过 AWS AppSync 使用 graphql。鉴于我下面的模型,我希望当我成功地 createClassroomcreateClassroomInput 时,teacherClassrooms 将有一个与之关联的新教室,并且新创建的教室将有一个与之关联的教师。

然而,结果是创建了 Classroom,并且 User 与新的 Classroom 正确关联,但 Classroom 未与现有关联User

type User @model {
  id: ID!
  userType: String!
  teacherClassrooms: [Classroom] @connection(name: "TeacherClassrooms")
}

type Classroom @model {
  id: ID!
  teacher: User @connection(name: "TeacherClassrooms")
  linkCode: String!
  name: String!
}

export type CreateClassroomInput = {
  id?: string | null,
  linkCode: string,
  name: string,
  classroomTeacherId?: string | null,
};

因此,如果我查询 listClassrooms,每个教室都会返回其关联的 User。但是如果我查询 User 他们的 teacherClassrooms 数组中没有任何教室。

创建新的 Classroom 时是否需要 updateUser?我的直觉和对 the docs 的理解让我相信,当在模型 属性 上指定 @connection 时,AppSync 将处理这两个更新。

或者这只是向后端指示 "for each Id in this property array assume it's of type X and when queried go fetch by Id against the corresponding table" 的一种方式?

检查您的列表查询。我遇到了同样的问题,然后意识到在使用名称连接更新架构后生成的列表查询缺少关系属性。在你的情况下是这样的

listUsers { 
  items { 
    id 
    teacherClassrooms { 
      items { 
        linkCode 
        id name 
      } 
    } 
  } 
}

在您的 listUsers 查询中