DynamoDB DeleteItem em Java (AWS SDK v2)
DeleteItem remove um único item pela sua chave primária completa. No AWS SDK for Java 2.x você constrói um DeleteItemRequest e chama deleteItem em um DynamoDbClient; com ReturnValue.ALL_OLD a resposta informa se algo foi de fato excluído.
Code
import java.util.HashMap;
import java.util.Map;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
import software.amazon.awssdk.services.dynamodb.model.DeleteItemRequest;
import software.amazon.awssdk.services.dynamodb.model.DeleteItemResponse;
import software.amazon.awssdk.services.dynamodb.model.DynamoDbException;
import software.amazon.awssdk.services.dynamodb.model.ReturnValue;
public class DeleteItemExample {
public static void main(String[] args) {
try (DynamoDbClient ddb = DynamoDbClient.builder()
.region(Region.US_EAST_1)
.build()) {
Map<String, AttributeValue> key = new HashMap<>();
key.put("Artist", AttributeValue.builder().s("Arturo Sandoval").build());
key.put("SongTitle", AttributeValue.builder().s("Cubano Chant").build());
DeleteItemRequest request = DeleteItemRequest.builder()
.tableName("Music")
.key(key)
.returnValues(ReturnValue.ALL_OLD)
.build();
DeleteItemResponse response = ddb.deleteItem(request);
if (response.attributes().isEmpty()) {
System.out.println("No item with that key existed");
} else {
System.out.println("Deleted: " + response.attributes());
}
} catch (DynamoDbException e) {
System.err.println(e.getMessage());
}
}
}Explicação
key— deve incluir todos os atributos da chave primária: apenas a chave de partição para uma chave simples, ou chave de partição e chave de classificação para uma chave composta.- A exclusão é idempotente — excluir uma chave que não existe ainda é um sucesso (sem erro). Com
returnValues(ReturnValue.ALL_OLD)o item excluído volta emresponse.attributes(); um mapa vazio significa que não havia nada ali. ReturnValuesparaDeleteItemsuporta apenasNONE(padrão) eALL_OLD— as opçõesALL_NEW/UPDATED_*pertencem aoUpdateItem.- Exclusão condicional — adicione uma
conditionExpression(por exemplo,attribute_exists(Artist)para falhar em um item ausente, ouAwards = :zeropara proteger com base em um valor); uma condição falha lançaConditionalCheckFailedException. DeleteItemremove um item por chamada. Não existe uma API de "excluir tudo" — para esvaziar uma tabela, itere as chaves comScane agrupe as exclusões, ou apague e recrie a tabela.
Faça visualmente
Protegendo a exclusão com uma condição? O DynamoDB Expression Builder monta a ConditionExpression e os mapas de nome/valor por você.
Para excluir itens numa GUI — selecione linhas, confirme, pronto, com o código gerado a um clique de distância — baixe o DynoTable.
Exemplos relacionados
- DynamoDB DeleteItem em Go — a mesma exclusão com o AWS SDK for Go v2.
- DynamoDB PutItem em Java — o lado da gravação da mesma chave.
- Condition expressions do DynamoDB — proteja exclusões com
attribute_existse verificações de valor. - DynamoDB ConditionalCheckFailedException — o que uma exclusão condicional falha lança, e quando é esperado.
References
- DeleteItem — Amazon DynamoDB API Reference
- Use DeleteItem with an AWS SDK or CLI — Amazon DynamoDB Developer Guide
- DynamoDbClient — AWS SDK for Java 2.x API Reference
- DeleteItemRequest — AWS SDK for Java 2.x API Reference
- Condition expressions — Amazon DynamoDB Developer Guide
Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.