首页 > 解决方案 > AppSync @connection 未建立双向连接

问题描述

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

然而,结果是Classroom已创建,并且User与新的正确关联,ClassroomClassroom与现有的 没有关联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

updateUser当我创建一个新的时我需要Classroom吗?我的直觉和对文档的理解使我相信 AppSync@connection在模型属性上指定时会处理这两个更新。

或者这只是向后端指示“对于此属性数组中的每个 Id 都假定它的类型为 X 并且在查询时通过 Id 对相应的表进行获取”的一种方式?

标签: amazon-dynamodbgraphqlaws-amplifyaws-appsync

解决方案


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

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

在您的listUsers查询中


推荐阅读