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
gefragt vor 2 Jahren1005 Aufrufe
2 Antworten
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
EXPERTE
beantwortet vor 2 Jahren
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;
    }
}
beantwortet vor 4 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen