问题描述
我想在 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 结构的表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!