DynamoDB: How can I create a table with nested JSON structure?(DynamoDB:如何创建具有嵌套 JSON 结构的表?)
问题描述
我想在 dynamoDB 中创建一个具有以下结构的表.
I want to create a table in dynamoDB with below structure.
{
"CartId": 123,
"UserId": 356,
"CartItems": [
{
"ProductId": 100,
"Quantity": 50
},
{
"ProductId": 121,
"Quantity": 51
}
]
}
在教程和文档中到处都说我们只能在表中具有以下类型的属性:
Everywhere in tutorials and documents it says that we can only have below type of attributes in the table:
字符串集
Set of Strings
一组数字
二进制集
我想不出在 DynamoDB 中存储上述结构的方法.你能帮忙吗?
I can't think of a way to store above structure in DynamoDB. Could you please help out?
我正在使用 java 的对象映射器 Api.如果您还可以告诉我如何创建一个可以映射到这个特定表结构的类,那就太好了.
I am using object mapper Api of java. It would be great if you can also tell me how can I create a class which can be mapped to this particular table structure.
推荐答案
最简单的方法是使用 @DynamoDBDocument
- 添加 Maven 依赖项
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
<version>1.11.186</version>
</dependency>
- 创建 POJO
@DynamoDBTable(tableName = "Customer")
public class Customer
{
@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
private String id;
private String firstName;
private List<Foo> fooList;
}
@DynamoDBDocument
public static class Foo {
private String name;
}
- 创建存储库
@EnableScan
public interface CustomerRepository extends CrudRepository<Customer,String>
然后调用customerRepository.save(customer)
.结果会是这样的:
Then call customerRepository.save(customer)
. The result will be like this:
{
"firstName": "Test",
"fooList": [
{
"name": "foo"
},
{
"name": "foo2"
}
],
"id": "e57dd681-8608-4712-a39a-f3e0f31a5e27"
}
这篇关于DynamoDB:如何创建具有嵌套 JSON 结构的表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:DynamoDB:如何创建具有嵌套 JSON 结构的表?


- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01