Es gibt mehrere Artikel darüber, wie bedingungsbedingte Validierung Ausnahme (zB: DynamoDBMapper save only if object doesn't exist) auf, wenn der Hash-Schlüssel ist doppelt oder übereinstimmend mit Ihren Kriterien, fragte sich, ob das gleiche für Bereichsschlüssel gilt.Dynamodb - Check Duplikat auf Bereichstaste
Ich habe lokal getestet und es wird kein Fehler ausgegeben.
Mein Ausdruck Logik speichern ist als unten
DynamoDBSaveExpression saveExpression = new DynamoDBSaveExpression();
Map<String, ExpectedAttributeValue> expectedAttributes =
ImmutableMap.<String, ExpectedAttributeValue>builder()
.put("range-key-column",
new ExpectedAttributeValue().withExists(false))
.build();
saveExpression.setExpected(expectedAttributes);
Ist Ihr Hashkey verschiedenen s/w rec Ords, wenn Sie die ConditionalCheckFailedException bekommen? – Superaghu
Ich stelle fest, dass, wenn der Hash-Schlüssel und der Bereichsschlüssel gleich sind und der saveExpression nur den zu prüfenden Bereichsschlüssel hat, die Validierungsausnahme ausgelöst wird. Wenn der Hash-Schlüssel jedoch unterschiedlich ist, aber der Bereichsschlüssel gleich ist, ist dies nicht der Fall. So verstehe ich, dass der Save-Ausdruck die Kombination von Hash + Range-Schlüssel überprüft, auch wenn Sie angewiesen haben, nur den Bereichsschlüssel für den Vergleich zu verwenden. – Superaghu