Dynamodb с list.append в Java - PullRequest
       12

Dynamodb с list.append в Java

1 голос
/ 30 марта 2019

В настоящее время у моего 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);

Что я здесь не так делаю?

1 Ответ

1 голос
/ 30 марта 2019

Итак, вы пытаетесь сохранить doc в DynamodB через представление Map.Единственная проблема, которую я могу предположить, состоит в том, что некоторые из ваших doc полей являются пустыми String, а затем вы пытаетесь сохранить его как AttributeValue Dynamo, а это недопустимо: https://forums.aws.amazon.com/thread.jspa?threadID=90137

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...