【问题标题】:How to create an Amplify Datastore many-to-many schema in version 3.7.3如何在版本 3.7.3 中创建 Amplify Datastore 多对多架构
【发布时间】:2022-01-01 18:00:13
【问题描述】:

我正在尝试使用新的 @hasMany 指令在 Amplify Datastore 中建立简单的多对多关系。不幸的是,除了“如果你想在连接表上存储额外的属性,或者如果你有一个现有的连接表,你可以继续使用两个 @hasMany @belongsTo 关系来促进多对- 多关系”。

我想为具有多对多关系的仓库和零件提供表格,以跟踪特定仓库中特定零件的库存数量:

type Part @model {
  id: ID!
  description: String!  
  inventories: [Inventory] @hasMany(indexName: "warehousesByPart", fields: ["id"])
}

type Warehouse @model {
  id: ID!
  description: String!
  inventories: [Inventory] @hasMany(indexName: "partsByWarehouse", fields: ["id"])
}

type Inventory  @model {
    id: ID!
    warehouseId: ID! @index(name: "partsByWarehouse", sortKeyFields: ["partId"])
    partId: ID! @index(name: "warehousesByPart", sortKeyFields: ["warehouseId"])
    part: Part! @belongsTo(fields: ["partId"])
    warehouse: Warehouse! @belongsTo(fields: ["warehouseId"])
    inStock: Int!
}

这只是一个前端实现。 Amplify CLI 是最新版本 (7.6.5)。我得到的错误是

处理 Warehouse.inventories 上的 @hasMany 指令时出错,@index 在连接模型中找不到名为 partsByWarehouse 的指令 库存

我做错了什么?非常感谢任何帮助。

【问题讨论】:

    标签: aws-amplify


    【解决方案1】:

    更改了类型的顺序,并在 m2m 表中添加了一个 primaryKey。 “Part”类型必须在模式中最后列出,否则会出错。据我所知,这在任何地方都没有记录。我注意到,即使在 aws 文档中列出的示例中,翻转序列时也会出现错误。这是使用放大模型生成。另请注意,与数据存储部分相比,amplify 文档的 API (GraphQL) 部分中的文档要好得多。

    type Warehouse @model {
      id: ID!
      description: String!
      inventories: [Inventory] @hasMany(indexName: "partsByWarehouse", fields: ["id"])
    }
    
    type Inventory  @model {
        partId: ID! @primaryKey(sortKeyFields: ["warehouseId"])
        warehouseId: ID! @index(name: "partsByWarehouse")
        part: Part! @belongsTo(fields: ["partId"])
        warehouse: Warehouse! @belongsTo(fields: ["warehouseId"])
        inStock: Int!
    }
    
    type Part @model {
      id: ID!
      description: String!  
      inventories: [Inventory] @hasMany(fields: ["id"]) 
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 2012-01-10
      相关资源
      最近更新 更多