Class CrossTableBatchWriteBuilder
java.lang.Object
dev.hogwai.dynamodb.simplified.builder.base.AbstractCrossTableBatchWriteBuilder<CrossTableBatchWriteBuilder>
dev.hogwai.dynamodb.simplified.builder.CrossTableBatchWriteBuilder
public class CrossTableBatchWriteBuilder
extends AbstractCrossTableBatchWriteBuilder<CrossTableBatchWriteBuilder>
Builds a cross-table batch write operation to put and delete items across multiple tables.
Obtain via DynamoSimplifiedClient.batchWrite().
Unlike the single-table BatchWriteBuilder, this builder accepts table-scoped
puts and deletes, allowing writes to multiple tables in a single request.
A single batch write can contain up to 25 put and delete operations combined. Unprocessed items are automatically retried with exponential backoff (up to 3 attempts).
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractCrossTableBatchWriteBuilder
AbstractCrossTableBatchWriteBuilder.Operation -
Field Summary
Fields inherited from class AbstractCrossTableBatchWriteBuilder
operations, returnConsumedCapacity -
Constructor Summary
ConstructorsConstructorDescriptionCrossTableBatchWriteBuilder(@NonNull software.amazon.awssdk.services.dynamodb.DynamoDbClient dynamoDbClient) Constructs a newCrossTableBatchWriteBuilder. -
Method Summary
Modifier and TypeMethodDescription@NonNull CrossTableBatchWriteResultexecute()Executes the batch write operation.protected @NonNull StringgetTableName(@NonNull AbstractCrossTableBatchWriteBuilder.Operation operation) Extracts the DynamoDB table name from an operation's table reference.protected @NonNull software.amazon.awssdk.enhanced.dynamodb.TableSchema<?> getTableSchema(@NonNull AbstractCrossTableBatchWriteBuilder.Operation operation) Extracts the table schema from an operation's table reference.protected @NonNull CrossTableBatchWriteBuilderself()Returnsthistyped asSfor fluent chaining.Methods inherited from class AbstractCrossTableBatchWriteBuilder
buildKey, buildRequestItems, delete, delete, put, returnConsumedCapacity
-
Constructor Details
-
CrossTableBatchWriteBuilder
public CrossTableBatchWriteBuilder(@NonNull software.amazon.awssdk.services.dynamodb.DynamoDbClient dynamoDbClient) Constructs a newCrossTableBatchWriteBuilder.- Parameters:
dynamoDbClient- the low-level DynamoDB client
-
-
Method Details
-
self
Description copied from class:AbstractCrossTableBatchWriteBuilderReturnsthistyped asSfor fluent chaining.- Specified by:
selfin classAbstractCrossTableBatchWriteBuilder<CrossTableBatchWriteBuilder>- Returns:
- this builder
-
getTableName
protected @NonNull String getTableName(@NonNull AbstractCrossTableBatchWriteBuilder.Operation operation) Description copied from class:AbstractCrossTableBatchWriteBuilderExtracts the DynamoDB table name from an operation's table reference.- Specified by:
getTableNamein classAbstractCrossTableBatchWriteBuilder<CrossTableBatchWriteBuilder>- Parameters:
operation- the operation whose table name to extract- Returns:
- the DynamoDB table name
-
getTableSchema
protected @NonNull software.amazon.awssdk.enhanced.dynamodb.TableSchema<?> getTableSchema(@NonNull AbstractCrossTableBatchWriteBuilder.Operation operation) Description copied from class:AbstractCrossTableBatchWriteBuilderExtracts the table schema from an operation's table reference.- Specified by:
getTableSchemain classAbstractCrossTableBatchWriteBuilder<CrossTableBatchWriteBuilder>- Parameters:
operation- the operation whose table schema to extract- Returns:
- the table schema
-
execute
Executes the batch write operation.All puts and deletes added to this builder are sent in a single batch write request. Unprocessed items are automatically retried with exponential backoff (up to 3 attempts).
- Returns:
- a
CrossTableBatchWriteResultcontaining any unprocessed items - Throws:
IllegalArgumentException- if more than 25 items (puts + deletes combined) are provided
-