2014-11-30 2 views
0

dynamodb에 cou라는 단어와 값의 키가있는 테이블이 있습니다. 단어는 내 해시 키이고 cou는 속성 키입니다. 내 단어 값 중 하나를 다른 값으로 업데이트하려고합니다. 이 예외가 발생합니다.DynamoDb의 기존 값으로 업데이트 할 수 없습니다.

com.amazonaws.AmazonServiceException: The provided key element does not match the schema 

내가하는 일은 아래 코드에 나와 있습니다. 어떤 제안.

java.util.Map<String, AttributeValue> item = new HashMap<String, AttributeValue>(); 
      item.put("word", new AttributeValue().withS("TimeZone")); 

      java.util.Map<String, AttributeValue> expressionAttributeValues = new HashMap<String, AttributeValue>(); 
      expressionAttributeValues.put(":val1", new AttributeValue().withN("1")); 
      expressionAttributeValues.put(":val2", new AttributeValue().withN("12")); 

      ReturnValue returnValues = ReturnValue.ALL_NEW; 

      UpdateItemRequest updateItemRequest = new UpdateItemRequest() 
       .withTableName(tableName) 
       .withKey(item) 
       .withUpdateExpression("add cou :val1 set NewAttribute=:val2") 
       .withExpressionAttributeValues(expressionAttributeValues) 
       .withReturnValues(returnValues);  

      UpdateItemResult result = client.updateItem(updateItemRequest); 

답변

1

"단어"는 당신의 키이고 "cou"는 "속성 키"라고 언급했습니다. 나는 당신이 범위 키를 의미하는 속성 키로 가정합니다. 스키마에 해시 및 범위 키가 모두있는 경우 키 해시 맵 ("항목")에 둘 다를 지정해야하며 해시 키만으로는 업데이트 할 수 없습니다.

+1

정확히. 범위 키로 "cou"를 만들었고 스키마를 수정했을 때 스키마에 관한 어떤 오류도 발생하지 않았습니다. 해결되었습니다. 감사. – ZZzzZZzz

관련 문제