속성의 업데이트 동작 변경 - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

속성의 업데이트 동작 변경

업데이트 작업을 수행할 때 개별 속성의 업데이트 동작을 사용자 지정할 수 있습니다. DynamoDB Enhanced Client에서 업데이트 작업의 몇 가지 예는 updateItem()transactWriteItems()API입니다.

예를 들어 생성된 타임스탬프를 레코드에 저장하고 싶다고 가정해 보겠습니다. 그러나 데이터베이스에 이미 속성에 대한 기존 값이 없는 경우에만 해당 값이 기록되기를 원합니다. 이 경우에는 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();