You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用值为@DynamoDBDocument类的HashMap类型@DynamoDBAttribute及存储验证

问题1:上述写法是否可以正常生效?

可以正常生效。
你给Config类添加的@DynamoDBDocument注解已经告知DynamoDB Mapper该类需要序列化为嵌套文档结构,AWS Java SDK的DynamoDB Mapper原生支持Map<String, 自定义文档类>的字段类型,不需要额外添加序列化/反序列化配置即可正常读写。

问题2:对于给出的JSON数据,DynamoDB中最终生成的对应条目是什么结构?

首先需要注意:你给出的JSON结构和你定义的MyItem类结构不匹配。MyItem类中配置项是存储在名为configs的Map字段中,而你给出的JSON把a_config_key放在了根层级,这种情况下DynamoDB Mapper会默认忽略类中未定义的根字段a_config_key,最终存储的条目只有两个字段:

{
  "hash_key": "123",
  "some_attribute": "attribute_value"
}

如果你将JSON调整为符合MyItem结构的格式(如下):

{
    "hash_key":"123",
    "some_attribute":"attribute_value",
    "configs": {
        "a_config_key" : {
            "field":"field_value"
        }
    }
}

那么DynamoDB中最终存储的条目结构为:

{
  "hash_key": { "S": "123" },
  "some_attribute": { "S": "attribute_value" },
  "configs": {
    "M": {
      "a_config_key": {
        "M": {
          "field": { "S": "field_value" }
        }
      }
    }
  }
}

如果通过控制台查看或者调用接口取回原生数据,会展示为上述带类型标识的结构,如果你用Mapper直接读取转回MyItem对象,则会自动映射回你定义的Java类结构。

内容的提问来源于stack exchange,提问作者BryceLanglotz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:21:03