В настоящее время у моего DynamodB есть ключ batch_id, а затем список 'doc_info_list'. Я хотел бы добавить в список с кодом ниже.
Но это показывает исключение
com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: ExpressionAttributeValues contains invalid value: One or more parameter values were invalid: An AttributeValue may not contain an empty string for key :val1 (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: 03LRKK3J3SBVFNGMKV36NVSQBJVV4KQNSO5AEMVJF66Q9ASUAAJG)
Код:
AmazonDynamoDB amazonDynamoDBClient = AmazonDynamoDBClientBuilder.defaultClient();
DynamoDB dynamoDB = new DynamoDB(amazonDynamoDBClient);
Table table = dynamoDB.getTable("XXXX");
String currentDateTime = MiscHelper.getDateTimeAsISO8601();
Map<String, Object> map = objectMapper.convertValue(doc, Map.class);
ValueMap valueMap = new ValueMap().withList(":val1", Arrays.asList(map));
valueMap.withList(":empty_list", new ArrayList<>());
valueMap.withString(":val2", currentDateTime);
UpdateItemSpec updateItemSpec = new UpdateItemSpec().withPrimaryKey("batch_id", batchId)
.withUpdateExpression("set doc_info_list = list_append(if_not_exists(doc_info_list, :empty_list), :val1), created_date_time = :val2, updated_date_time = :val2")
.withValueMap(valueMap)
.withReturnValues(ReturnValue.UPDATED_NEW);
Что я здесь не так делаю?