Я хочу добавить метку времени создания с помощью DynamoDBAutoGenerateStrategy.CREATE к моим элементам в Dynamo DB, мой преобразователь инициализируется с помощью config: DynamoDBMapperConfig.SaveBehavior.UPDATE_SKIP_NULL_ATTRIBUTES, но когда я проверяю свой элемент в Dynamo DB, он не обновляется.1001 *
Точно так же у меня также есть DynamoDBAutoGenerateStrategy.ALWAYS, который обновляется при создании элемента, я также проверил код aws для DynamoDBAutoGenerator, он упоминает о некоторых ограничениях использования CREATE с DynamoDBAutoGenerateStrategy.ALWAYS .: https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-dynamodb/src/main/java/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBAutoGenerator.java
Создание и время последнего обновления:
@DynamoDBAutoGeneratedTimestamp(strategy = DynamoDBAutoGenerateStrategy.CREATE)
@DynamoDBTypeConvertedTimestamp
private Long creationTimestamp;
@DynamoDBAutoGeneratedTimestamp(strategy = DynamoDBAutoGenerateStrategy.ALWAYS)
@DynamoDBTypeConvertedTimestamp
private Long lastUpdatedTimestamp;
Инициализация картографа:
@Provides
@Singleton
@Inject
public DynamoDbClient dynamoDbClientWithMapper(
@Named("standardAwsCred") AWSCredentialsProvider awsCredentials,
@Named("dynamodb.realm") String region) {
final DynamoDBMapperConfig.Builder configBuilder = new DynamoDBMapperConfig.Builder();
configBuilder.setSaveBehavior(DynamoDBMapperConfig.SaveBehavior.UPDATE_SKIP_NULL_ATTRIBUTES);
DynamoDBMapperConfig dynamoDBMapperConfig = configBuilder.build();
DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(AmazonDynamoDBClientBuilder.standard()
.withCredentials(awsCredentials)
.withRegion(region)
.build(), dynamoDBMapperConfig);
return new DynamoDbClient(dynamoDBMapper);
}
Как я могу заставить это работать?У меня есть решение, которое заключается в том, чтобы не иметь DynamoDBMapperConfig или оставить его по умолчанию при создании Mapper и передавать его каждый раз, когда мне нужно обновить элемент, но я не предпочитаю использовать этот способ, может кто-нибудь подсказать, как можно заставить работать приведенный выше код?