更新嵌套项aws-dynamo-db(适用于Java 2.0的AWS开发工具包)

时间:2019-08-05 22:02:48

标签: spring-boot amazon-dynamodb

我有一个嵌套的域对象,其结构如下:

class Domain {
//range key
 private final Integer Id; 
//hash key
 private final String accountId;
 //some  fields and this list nested //(below)
 private final List<Integer> list ;
}

试图遵循此示例[https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/dynamodb/src/main/java/com/example/dynamodb/UpdateItem.java

所以我已经保存了域。我想使用嵌套的子列表更新为null。所以基本上我正在寻找部分更新。


    Integer Id=1000;
    String accountId="1001";
     list = null;

但是我没有看到更新发生……这可能是原因。下面的代码只是文档中样本的复制粘贴。

代码:

item_key.put(COLUMN_NAME_ACCOUNT_ID,
                item_key.put(COLUMN_NAME__ID, AttributeValue.builder().n(String.valueOf(domain.getId())).build());

        HashMap<String, AttributeValueUpdate> updated_values = new HashMap<String, AttributeValueUpdate>();
        List<AttributeValue> list = new ArrayList<>();
        updated_values.put(COLUMN_NAME_LIST, AttributeValueUpdate.builder()
                .value(AttributeValue.builder().l(list).build())
                .action(AttributeAction.PUT)
                .build());
        UpdateItemRequest request = UpdateItemRequest.builder()
                .tableName(tableName)
                .key(item_key)
                .attributeUpdates(updated_values)
                .build();
        UpdateItemResponse response = dynamoDbAsyncClient.updateItem(request).getNow(null);
        Domain updated = mapToDomain(response.attributes());
        return updated;`



0 个答案:

没有答案