2016-07-22 6 views
0

Ich habe eine Dynamo-Tabelle, die optimistische Sperrung über DynamoDBVersionAttribute verwendet, um sicherzustellen, dass jeweils nur ein Mitarbeiter ein Dokument reserviert hat. Wenn ich jedoch ein Dokument bereinigen möchte, löst das Löschen eine ConditionalCheckFailedException aus, wenn ich die Version nicht in 10 einstelle.Erzwinge Löschen in Tabelle, die optimistisches Sperren mit Versionsnummer verwendet

An diesem Punkt ist mir egal, welche Version das Dokument ist, und ich möchte es löschen, egal welche Version es ist. Gibt es eine Möglichkeit, das Löschen zu erzwingen, ohne sich Gedanken über die Version machen zu müssen? Ich möchte die Ausnahme überwinden, ohne Dynamo für das Dokument abfragen zu müssen.

Antwort

0

Sie können ein Dynamo-Element nicht mit DynamoMapper löschen, es sei denn, Sie haben das Versionsfeld auf die korrekte Version eingestellt. Wenn Sie also vermeiden möchten, dass Sie eine Anforderung erhalten, das Dokument vor dem Löschen zu finden, müssen Sie die Methode deleteItem direkt auf dem Dynamo-Client verwenden.

0

Sie können das Element löschen, indem Sie SaveBehaviour als CLOBBER angeben, ohne sich über die Version Gedanken machen zu müssen.

DynamoDBMapper mapper; 
mapper.delete(object, new DynamoDBMapperConfig(DynamoDBMapperConfig.SaveBehavior.CLOBBER) 
Verwandte Themen