我使用UPDATE_SKIP_NULL_ATTRIBUTES
作为配置创建一个映射器,这样我就可以保存实体并跳过null属性。它确实有效。但是,当我调用batchSave时,它不起作用。
知道这个问题的人吗?
```
DynamoDBMapperConfig update_config = DynamoDBMapperConfig.builder()
.withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.UPDATE_SKIP_NULL_ATTRIBUTES)
.build();
mapper = new DynamoDBMapper(client, update_config);
List<DynamoDBMapper.FailedBatch> failedBatches = mapper.batchSave(one, two);
```
最后,我发现null属性已更新为DB,我不想这样做。我只想保存没有空值的attrs。
答案 0 :(得分:2)
好吧,我读了DynamoDBMapper的文档,发现它确实不支持batch-save-skip-null-attributes
的功能。
这是链接: batchSave
原因是:
config - Only DynamoDBMapperConfig.getTableNameOverride() and DynamoDBMapperConfig.getBatchWriteRetryStrategy() are considered. If TableNameOverride is specified, all objects in the two parameter lists will be considered to belong to the given table override. In particular, this method always acts as if **SaveBehavior.CLOBBER** was specified *regardless* of the value of the config parameter.
所以,我不知道如何只更新许多实体的一个字段。我必须通过PK获得所有,然后保存它们。