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 结构的表?


基础教程推荐
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 降序排序:Java Map 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01