gpt4 book ai didi

java - 扁平化对象是否会使用 @DynamoDBFlattened 自动更新?

转载 作者:行者123 更新时间:2023-12-02 11:37:24 28 4
gpt4 key购买 nike

我对 NoSQL 非常陌生。我正在查看aws-java-sdk-dynamodb,我发现这个注释@DynamoDBFlattened似乎可以扁平化内部复杂对象类型。

让我们假设以下结构:

@DynamoDBTable(tableName = "Product")
public class Product {

@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
private String id;

@DynamoDBFlattened
private Supplier supplier;

}

@DynamoDBTable(tableName = "Supplier")
public class Supplier {

@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
private String id;

private String name;

}

现在假设我的供应商数据库中有以下供应商:

{
"id": "1",
"name": "Nick"
}

以及产品数据库中的以下产品:

{
"id": "1",
"supplier": { "id": "1", "name": "Nick" }
}

如果我将供应商数据库中的供应商更新为如下所示,会发生什么情况:

{
"id": "1",
"name": "John"
}

产品注册表会发生什么情况? ID 为 1 的产品的供应商名称是否会自动更新为 John?或者仍然是尼克?

最佳答案

不,两个表中的数据之间没有关系。 @DynamoDBFlattened 的目的是允许您在代码中使用复杂类型,这些类型一旦存储在 DynamoDB 表中,就会被平展为各个字段。

具体而言,在您的情况下,不应存在 Supplier 表,因为数据存储在 Product 表中。它只能通过产品检索,除非您使用二级索引来获取供应商。

关于java - 扁平化对象是否会使用 @DynamoDBFlattened 自动更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48827799/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com