【问题标题】:AppSync @connection not making two-way connectionAppSync @connection 未建立双向连接
【发布时间】:2019-12-29 16:20:20
【问题描述】:

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

然而,结果是创建了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 会处理这两个更新。

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

【问题讨论】:

    标签: amazon-dynamodb graphql aws-amplify aws-appsync


    【解决方案1】:

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

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

    在您的 listUsers 查询中

    【讨论】:

    • 谢谢 Marek,你是对的,我对 graphql 还是很陌生。这是完整的通话,当你更新我会接受...` listUsers { items { id teacherClassrooms { items { linkCode id name } } } }`
    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2020-01-02
    相关资源
    最近更新 更多