gpt4 book ai didi

java - 我们可以在同一个项目中同时使用 aws dynamodb 版本 1.x 和 2.x 吗?

转载 作者:行者123 更新时间:2023-12-01 22:56:07 25 4
gpt4 key购买 nike

我问这个问题的原因是 aws sdk dynamodb 版本 2.x 不支持 DynamoDB 映射器。所以我想利用 1.x 中的 dynamodb 映射器以及 2.x 中的自动分页和其他功能。

或者 aws sdk 2.0 中是否有 dynamodb 映射器的替代品?请告诉我。谢谢

最佳答案

适用于 DynamoDB 的 AWS Java SDK 确实支持 DynamoDB 映射器:

参见:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.html

以及 GitHub 来源: https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-dynamodb/src/main/java/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.java

您可以使用最新 SDK 中的 DynamoDB Mapper,如下所示:

package com.amazonaws.codesamples;

import java.util.Set;

import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBIgnore;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;

@DynamoDBTable(tableName="ProductCatalog")
public class CatalogItem {

private Integer id;
private String title;
private String ISBN;
private Set<String> bookAuthors;
private String someProp;

@DynamoDBHashKey(attributeName="Id")
public Integer getId() { return id; }
public void setId(Integer id) {this.id = id; }

@DynamoDBAttribute(attributeName="Title")
public String getTitle() {return title; }
public void setTitle(String title) { this.title = title; }

@DynamoDBAttribute(attributeName="ISBN")
public String getISBN() { return ISBN; }
public void setISBN(String ISBN) { this.ISBN = ISBN; }

@DynamoDBAttribute(attributeName="Authors")
public Set<String> getBookAuthors() { return bookAuthors; }
public void setBookAuthors(Set<String> bookAuthors) { this.bookAuthors = bookAuthors; }

@DynamoDBIgnore
public String getSomeProp() { return someProp; }
public void setSomeProp(String someProp) { this.someProp = someProp; }
}

之后:

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build();

DynamoDBMapper mapper = new DynamoDBMapper(client);

CatalogItem item = new CatalogItem();
item.setId(102);
item.setTitle("Book 102 Title");
item.setISBN("222-2222222222");
item.setBookAuthors(new HashSet<String>(Arrays.asList("Author 1", "Author 2")));
item.setSomeProp("Test");

mapper.save(item);

关于java - 我们可以在同一个项目中同时使用 aws dynamodb 版本 1.x 和 2.x 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438895/

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