Java DynamoDB DynamodBautoGenerateStregy.CREATE不使用DynamoDBMapperConfig.SaveBehavior.UPDATE\u SKIP\u NULL\u属性
我想使用dynamodbautogeneratestategy.CREATE将创建时间戳添加到dynamo db中的我的项目中,我的映射器使用config:DynamoDBMapperConfig.SaveBehavior.UPDATE\u SKIP\u NULL\u属性初始化,但当我在dynamo db中检查我的项目时,它不会得到更新 同样,我也有dynamodbautogeneratetegy.ALWAYS,它在创建项目时会更新,我还检查了DynamoDBAutoGenerator的aws代码,它提到将CREATE与dynamodbautogeneratetegy一起使用存在一些限制。ALWAYS.: 创建和上次更新的时间戳:Java DynamoDB DynamodBautoGenerateStregy.CREATE不使用DynamoDBMapperConfig.SaveBehavior.UPDATE\u SKIP\u NULL\u属性,java,amazon-web-services,amazon-dynamodb,Java,Amazon Web Services,Amazon Dynamodb,我想使用dynamodbautogeneratestategy.CREATE将创建时间戳添加到dynamo db中的我的项目中,我的映射器使用config:DynamoDBMapperConfig.SaveBehavior.UPDATE\u SKIP\u NULL\u属性初始化,但当我在dynamo db中检查我的项目时,它不会得到更新 同样,我也有dynamodbautogeneratetegy.ALWAYS,它在创建项目时会更新,我还检查了DynamoDBAutoGenerator的aws代
@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或将其保留为默认值,并在每次更新项目时传递它,但是我不喜欢使用这种方式。有人能建议我如何使上述代码工作吗?看看DynamoDBGenerator,如果我们坚持更新\u SKIP\u NULL\u属性,似乎不可能实现这种行为 其他选择包括:
- A) 在创建对象时设置creationTimestamp
- B) 在保存新对象时使用SaveExpression定义creationTimestamp的创建