Migrate "DynamoDBAutoGeneratedKey" to DynamoDbEnhancedClient

0

I am using AWS version 2 and using DynamoDbEnhancedClient for dynamodb operations. I want to have a primary key which should be auto-generated. I see that in previous version of DynamoDB, we have the option of using DynamoDBAutoGeneratedKey annotation for this. But I am not able to find way to configure a auto-generated key with AWS version 2 (DynamoDbEnhancedClient )

Can somebody guide me please.

Thanks,

Satish

Satish
已提問 2 年前檢視次數 1005 次
2 個答案
1

This functionality is not yet available for Enhanced Client. I would suggest adding a feature request on the repo: https://github.com/aws/aws-sdk-java-v2/tree/master/services-custom/dynamodb-enhanced

profile pictureAWS
專家
已回答 2 年前
0

To achieve this in DynamoDbEnhancedClient first we need to activate the extension while creating the DynamoDbEnhancedClient bean. Please find the attached code for your reference

Step 1 :-

public DynamoDbClient getDynamoDbClientForEC2() {
        return DynamoDbClient.builder()
                .region(Region.of(awsRegion))
                .credentialsProvider(InstanceProfileCredentialsProvider.create())
                .endpointOverride(URI.create(awsDynamoDBEndPoint))
                .build();
    }
 @Bean
 @ConditionalOnProperty(prefix = "aws", name = "access.secured", havingValue = "enabled")
    public DynamoDbEnhancedClient getDynamoDbEnhancedClientForEC2() {
        return DynamoDbEnhancedClient.builder()
                .dynamoDbClient(getDynamoDbClientForEC2())
                .extensions(AutoGeneratedTimestampRecordExtension.create(), AutoGeneratedUuidExtension.create())
                .build();
    }

Step 2 :- Finally, you can tell DynamoDbEnhancedClient to autogenerate the key for you in the entity class,

@DynamoDbBean
public class MyEntity {
private String myPartionKey;

 @DynamoDbPartitionKey
 @DynamoDbAutoGeneratedUuid 
    public String getMyPartionKey() {
        return myPartionKey;
    }
}
已回答 4 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南