變更屬性的更新行為 - AWS SDK for Java 2.x

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

變更屬性的更新行為

您可以在執行更新作業時自訂個別屬性的更新行為。DynamoDB 增強型用戶端 API 中的一些更新作業範例為更新項目 () 和 transactWriteItems ()

例如,假設您想要在記錄上存儲在時間戳上創建的時間戳。但是,只有在資料庫中沒有屬性的現有值時,才想要寫入其值。在此情況下,您會使用WRITE_IF_NOT_EXISTS更新行為。

下列範例顯示將行為新增至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; } }

您可以在建置靜態資料表結構描述時宣告相同的更新行為,如下列範例在註解第 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();