Alterar o comportamento de atualização dos atributos - AWS SDK for Java 2.x

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Alterar o comportamento de atualização dos atributos

Você pode personalizar o comportamento de atualização de atributos individuais ao realizar uma operação de atualização. Alguns exemplos de operações de atualização na API de cliente aprimorada do DynamoDB são updateItem () e (). transactWriteItems

Por exemplo, imagine que você queira armazenar um carimbo de data/hora criado em seu registro. No entanto, você deseja que o valor seja gravado somente se ainda não houver nenhum valor existente para o atributo no banco de dados. Nesse caso, você usa o comportamento de atualização WRITE_IF_NOT_EXISTS.

O exemplo a seguir mostra a anotação que adiciona o comportamento ao atributo createdOn.

@DynamoDbBean public class Customer extends GenericRecord { private String id; private Instant createdOn; @DynamoDbPartitionKey public String getId() { return this.id; } public void setId(String id) { this.name = id; } @DynamoDbUpdateBehavior(UpdateBehavior.WRITE_IF_NOT_EXISTS) public Instant getCreatedOn() { return this.createdOn; } public void setCreatedOn(Instant createdOn) { this.createdOn = createdOn; } }

Você pode declarar o mesmo comportamento de atualização ao criar um esquema de tabela estática, conforme mostrado no exemplo a seguir após a linha de comentário 1.

static final TableSchema<Customer> CUSTOMER_TABLE_SCHEMA = TableSchema.builder(Customer.class) .newItemSupplier(Customer::new) .addAttribute(String.class, a -> a.name("id") .getter(Customer::getId) .setter(Customer::setId) .tags(StaticAttributeTags.primaryPartitionKey())) .addAttribute(Instant.class, a -> a.name("createdOn") .getter(Customer::getCreatedOn) .setter(Customer::setCreatedOn) // 1. Add an UpdateBehavior. .tags(StaticAttributeTags.updateBehavior(UpdateBehavior.WRITE_IF_NOT_EXISTS))) .build();