简体   繁体   English

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

[英]Can we use both aws dynamodb version 1.x and 2.x in same project?

The reason I was asking this because aws sdk dynamodb version 2.x doesn't have support for DynamoDB Mappers.我之所以问这个问题是因为 aws sdk dynamodb 2.x 版不支持 DynamoDB 映射器。 So I want to leverage dynamodb mapper from 1.x and automatic pagination and other features from 2.x.所以我想利用 1.x 中的 dynamodb 映射器和 2.x 中的自动分页和其他功能。

Or Is there any alternative to dynamodb mappers in aws sdk 2.0?或者在 aws sdk 2.0 中是否有任何替代 dynamodb 映射器的方法? Please let me know.请告诉我。 thanks谢谢

AWS Java SDK for DynamoDB indeed supports DynamoDB Mappers:用于 DynamoDB 的 AWS Java SDK 确实支持 DynamoDB 映射器:

See: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.html请参阅: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.html

And the GitHub Source: https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-dynamodb/src/main/java/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.java和 GitHub 来源: https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-dynamodb/src/main/java/com/amazonaws/services/dynamodbv2/dataing .java

You can use DynamoDB Mapper as from the latest SDK as below:您可以从最新的 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; }
}

And later:然后:

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);         

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM