Interface DynamoDbAsyncTable<T>
-
- Type Parameters:
T- The type of the modelled object.
- All Superinterfaces:
MappedTableResource<T>
- All Known Implementing Classes:
DefaultDynamoDbAsyncTable
@ThreadSafe public interface DynamoDbAsyncTable<T> extends MappedTableResource<T>
Asynchronous interface for running commands against an object that is linked to a specific DynamoDb table resource and therefore knows how to map records from that table into a modelled object.By default, all command methods throw an
UnsupportedOperationExceptionto prevent interface extensions from breaking implementing classes.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default CompletableFuture<Void>createTable()Creates a new table in DynamoDb with the name and schema already defined for this DynamoDbTable.default CompletableFuture<Void>createTable(Consumer<CreateTableEnhancedRequest.Builder> requestConsumer)Creates a new table in DynamoDb with the name and schema already defined for this DynamoDbTable together with additional parameters specified in the supplied request object,CreateTableEnhancedRequest.default CompletableFuture<Void>createTable(CreateTableEnhancedRequest request)Creates a new table in DynamoDb with the name and schema already defined for this DynamoDbTable together with additional parameters specified in the supplied request object,CreateTableEnhancedRequest.default CompletableFuture<T>deleteItem(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)Deletes a single item from the mapped table using a supplied primaryKey.default CompletableFuture<T>deleteItem(Key key)Deletes a single item from the mapped table using a supplied primaryKey.default CompletableFuture<T>deleteItem(DeleteItemEnhancedRequest request)Deletes a single item from the mapped table using a supplied primaryKey.default CompletableFuture<T>deleteItem(T keyItem)Deletes a single item from the mapped table using just the key of a supplied modelled 'key item' object.default CompletableFuture<DeleteItemEnhancedResponse<T>>deleteItemWithResponse(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)Deletes a single item from the mapped table using a supplied primaryKey.default CompletableFuture<DeleteItemEnhancedResponse<T>>deleteItemWithResponse(DeleteItemEnhancedRequest request)Deletes a single item from the mapped table using a supplied primaryKey.default CompletableFuture<Void>deleteTable()Deletes a table in DynamoDb with the name and schema already defined for this DynamoDbTable.default CompletableFuture<DescribeTableEnhancedResponse>describeTable()Describes a table in DynamoDb with the name defined for thisDynamoDbAsyncTable.default CompletableFuture<T>getItem(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)Retrieves a single item from the mapped table using a supplied primaryKey.default CompletableFuture<T>getItem(Key key)Retrieves a single item from the mapped table using a supplied primaryKey.default CompletableFuture<T>getItem(GetItemEnhancedRequest request)Retrieves a single item from the mapped table using a supplied primaryKey.default CompletableFuture<T>getItem(T keyItem)Retrieves a single item from the mapped table using just the key of a supplied modelled 'key item'.default CompletableFuture<GetItemEnhancedResponse<T>>getItemWithResponse(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)Retrieves a single item from the mapped table using a supplied primaryKey.default CompletableFuture<GetItemEnhancedResponse<T>>getItemWithResponse(GetItemEnhancedRequest request)Retrieves a single item from the mapped table using a supplied primaryKey.DynamoDbAsyncIndex<T>index(String indexName)Returns a mapped index that can be used to execute commands against a secondary index belonging to the table being mapped by this object.default CompletableFuture<Void>putItem(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)Puts a single item in the mapped table.default CompletableFuture<Void>putItem(PutItemEnhancedRequest<T> request)Puts a single item in the mapped table.default CompletableFuture<Void>putItem(T item)Puts a single item in the mapped table.default CompletableFuture<PutItemEnhancedResponse<T>>putItemWithResponse(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)Puts a single item in the mapped table.default CompletableFuture<PutItemEnhancedResponse<T>>putItemWithResponse(PutItemEnhancedRequest<T> request)Puts a single item in the mapped table.default PagePublisher<T>query(Consumer<QueryEnhancedRequest.Builder> requestConsumer)Executes a query against the primary index of the table using aQueryConditionalexpression to retrieve a list of items matching the given conditions.default PagePublisher<T>query(QueryConditional queryConditional)Executes a query against the primary index of the table using aQueryConditionalexpression to retrieve a list of items matching the given conditions.default PagePublisher<T>query(QueryEnhancedRequest request)Executes a query against the primary index of the table using aQueryConditionalexpression to retrieve a list of items matching the given conditions.default PagePublisher<T>scan()Scans the table and retrieves all items using default settings.default PagePublisher<T>scan(Consumer<ScanEnhancedRequest.Builder> requestConsumer)Scans the table and retrieves all items.default PagePublisher<T>scan(ScanEnhancedRequest request)Scans the table and retrieves all items.default CompletableFuture<T>updateItem(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)Updates an item in the mapped table, or adds it if it doesn't exist.default CompletableFuture<T>updateItem(UpdateItemEnhancedRequest<T> request)Updates an item in the mapped table, or adds it if it doesn't exist.default CompletableFuture<T>updateItem(T item)Updates an item in the mapped table, or adds it if it doesn't exist.default CompletableFuture<UpdateItemEnhancedResponse<T>>updateItemWithResponse(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)Updates an item in the mapped table, or adds it if it doesn't exist.default CompletableFuture<UpdateItemEnhancedResponse<T>>updateItemWithResponse(UpdateItemEnhancedRequest<T> request)Updates an item in the mapped table, or adds it if it doesn't exist.-
Methods inherited from interface software.amazon.awssdk.enhanced.dynamodb.MappedTableResource
keyFrom, mapperExtension, tableName, tableSchema
-
-
-
-
Method Detail
-
index
DynamoDbAsyncIndex<T> index(String indexName)
Returns a mapped index that can be used to execute commands against a secondary index belonging to the table being mapped by this object. Note that only a subset of the commands that work against a table will work against a secondary index.- Parameters:
indexName- The name of the secondary index to build the command interface for.- Returns:
- An
DynamoDbAsyncIndexobject that can be used to execute database commands against.
-
createTable
default CompletableFuture<Void> createTable(CreateTableEnhancedRequest request)
Creates a new table in DynamoDb with the name and schema already defined for this DynamoDbTable together with additional parameters specified in the supplied request object,CreateTableEnhancedRequest.Use
DynamoDbEnhancedClient.table(String, TableSchema)to define the mapped table resource.This operation calls the low-level DynamoDB API CreateTable operation. Note that this is an asynchronous operation and that the table may not immediately be available for writes and reads. You can use
DynamoDbAsyncWaiter.waitUntilTableExists(DescribeTableRequest)to wait for the resource to be ready.Example:
ProvisionedThroughput provisionedThroughput = ProvisionedThroughput.builder() .readCapacityUnits(50L) .writeCapacityUnits(50L) .build(); mappedTable.createTable(CreateTableEnhancedRequest.builder() .provisionedThroughput(provisionedThroughput) .build()) .join(); asyncClient.waiter().waitUntilTableExists(b -> b.tableName(tableName)).join();- Parameters:
request- ACreateTableEnhancedRequestcontaining optional parameters for table creation.- Returns:
- a
CompletableFutureofVoid.
-
createTable
default CompletableFuture<Void> createTable(Consumer<CreateTableEnhancedRequest.Builder> requestConsumer)
Creates a new table in DynamoDb with the name and schema already defined for this DynamoDbTable together with additional parameters specified in the supplied request object,CreateTableEnhancedRequest.Use
DynamoDbEnhancedClient.table(String, TableSchema)to define the mapped table resource.This operation calls the low-level DynamoDB API CreateTable operation. Note that this is an asynchronous operation and that the table may not immediately be available for writes and reads. You can use
DynamoDbAsyncWaiter.waitUntilTableExists(DescribeTableRequest)to wait for the resource to be ready.Note: This is a convenience method that creates an instance of the request builder avoiding the need to create one manually via
CreateTableEnhancedRequest.builder().Example:
ProvisionedThroughput provisionedThroughput = ProvisionedThroughput.builder() .readCapacityUnits(50L) .writeCapacityUnits(50L) .build(); mappedTable.createTable(r -> r.provisionedThroughput(provisionedThroughput)).join(); asyncClient.waiter().waitUntilTableExists(b -> b.tableName(tableName)).join();- Parameters:
requestConsumer- AConsumerofCreateTableEnhancedRequest.Buildercontaining optional parameters for table creation.- Returns:
- a
CompletableFutureofVoid.
-
createTable
default CompletableFuture<Void> createTable()
Creates a new table in DynamoDb with the name and schema already defined for this DynamoDbTable.Use
DynamoDbEnhancedClient.table(String, TableSchema)to define the mapped table resource.This operation calls the low-level DynamoDB API CreateTable operation. Note that this is an asynchronous operation and that the table may not immediately be available for writes and reads. You can use
DynamoDbAsyncWaiter.waitUntilTableExists(DescribeTableRequest)to wait for the resource to be ready.Example:
mappedTable.createTable().join(); asyncClient.waiter().waitUntilTableExists(b -> b.tableName(tableName)).join();- Returns:
- a
CompletableFutureofVoid.
-
deleteItem
default CompletableFuture<T> deleteItem(DeleteItemEnhancedRequest request)
Deletes a single item from the mapped table using a supplied primaryKey.The additional configuration parameters that the enhanced client supports are defined in the
DeleteItemEnhancedRequest.This operation calls the low-level DynamoDB API DeleteItem operation. Consult the DeleteItem documentation for further details and constraints.
Example:
MyItem previouslyPersistedItem = mappedTable.delete(DeleteItemEnhancedRequest.builder().key(key).build()).join();- Parameters:
request- ADeleteItemEnhancedRequestwith key and optional directives for deleting an item from the table.- Returns:
- a
CompletableFutureof the item that was persisted in the database before it was deleted.
-
deleteItem
default CompletableFuture<T> deleteItem(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
Deletes a single item from the mapped table using a supplied primaryKey.The additional configuration parameters that the enhanced client supports are defined in the
DeleteItemEnhancedRequest.This operation calls the low-level DynamoDB API DeleteItem operation. Consult the DeleteItem documentation for further details and constraints.
Note: This is a convenience method that creates an instance of the request builder avoiding the need to create one manually via
DeleteItemEnhancedRequest.builder().Example:
MyItem previouslyPersistedItem = mappedTable.delete(r -> r.key(key)).join();- Parameters:
requestConsumer- AConsumerofDeleteItemEnhancedRequestwith key and optional directives for deleting an item from the table.- Returns:
- a
CompletableFutureof the item that was persisted in the database before it was deleted.
-
deleteItem
default CompletableFuture<T> deleteItem(Key key)
Deletes a single item from the mapped table using a supplied primaryKey.This operation calls the low-level DynamoDB API DeleteItem operation. Consult the DeleteItem documentation for further details and constraints.
Example:
MyItem previouslyPersistedItem = mappedTable.delete(key).join;- Parameters:
key- AKeythat will be used to match a specific record to delete from the database table.- Returns:
- a
CompletableFutureof the item that was persisted in the database before it was deleted.
-
deleteItem
default CompletableFuture<T> deleteItem(T keyItem)
Deletes a single item from the mapped table using just the key of a supplied modelled 'key item' object.This operation calls the low-level DynamoDB API DeleteItem operation. Consult the DeleteItem documentation for further details and constraints.
Example:
MyItem previouslyPersistedItem = mappedTable.deleteItem(keyItem).join();- Parameters:
keyItem- A modelled item with the primary key fields set that will be used to match a specific record to delete from the database table.- Returns:
- a
CompletableFutureof the item that was persisted in the database before it was deleted.
-
deleteItemWithResponse
default CompletableFuture<DeleteItemEnhancedResponse<T>> deleteItemWithResponse(DeleteItemEnhancedRequest request)
Deletes a single item from the mapped table using a supplied primaryKey.The additional configuration parameters that the enhanced client supports are defined in the
DeleteItemEnhancedRequest.This operation calls the low-level DynamoDB API DeleteItem operation. Consult the DeleteItem documentation for further details and constraints. Unlike
deleteItem(DeleteItemEnhancedRequest), this returns a response object, allowing the user to retrieve additional information from DynamoDB related to the API call, such asConsumedCapacityif specified on the request.Example:
DeleteItemEnhancedRequest request = DeleteItemEnhancedRequest.builder().key(key).build(); DeleteItemEnhancedResponse<MyItem> response = mappedTable.deleteItemWithResponse(request).join();- Parameters:
request- ADeleteItemEnhancedRequestwith key and optional directives for deleting an item from the table.- Returns:
- A
CompletableFuturecontaining the response returned by DynamoDB.
-
deleteItemWithResponse
default CompletableFuture<DeleteItemEnhancedResponse<T>> deleteItemWithResponse(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
Deletes a single item from the mapped table using a supplied primaryKey.The additional configuration parameters that the enhanced client supports are defined in the
DeleteItemEnhancedRequest.This operation calls the low-level DynamoDB API DeleteItem operation. Consult the DeleteItem documentation for further details and constraints. Unlike
deleteItem(Consumer), this returns a response object, allowing the user to retrieve additional information from DynamoDB related to the API call, such asConsumedCapacityif specified on the request.Note: This is a convenience method that creates an instance of the request builder avoiding the need to create one manually via
DeleteItemEnhancedRequest.builder().Example:
DeleteItemEnhancedResponse<MyItem> response = mappedTable.deleteWithResponse(r -> r.key(key)).join();- Parameters:
requestConsumer- AConsumerofDeleteItemEnhancedRequestwith key and optional directives for deleting an item from the table.- Returns:
- A
CompletableFuturecontaining the response returned by DynamoDB.
-
getItem
default CompletableFuture<T> getItem(GetItemEnhancedRequest request)
Retrieves a single item from the mapped table using a supplied primaryKey.The additional configuration parameters that the enhanced client supports are defined in the
GetItemEnhancedRequest.This operation calls the low-level DynamoDB API GetItem operation. Consult the GetItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.getItem(GetItemEnhancedRequest.builder().key(key).build()).join();- Parameters:
request- AGetItemEnhancedRequestwith key and optional directives for retrieving an item from the table.- Returns:
- a
CompletableFutureof the retrieved item.
-
getItem
default CompletableFuture<T> getItem(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)
Retrieves a single item from the mapped table using a supplied primaryKey.The additional configuration parameters that the enhanced client supports are defined in the
GetItemEnhancedRequest.This operation calls the low-level DynamoDB API GetItem operation. Consult the GetItem documentation for further details and constraints.
Note: This is a convenience method that creates an instance of the request builder avoiding the need to create one manually via
GetItemEnhancedRequest.builder().Example:
MyItem item = mappedTable.getItem(r -> r.key(key)).join();- Parameters:
requestConsumer- AConsumerofGetItemEnhancedRequest.Builderwith key and optional directives for retrieving an item from the table.- Returns:
- a
CompletableFutureof the retrieved item
-
getItem
default CompletableFuture<T> getItem(Key key)
Retrieves a single item from the mapped table using a supplied primaryKey.This operation calls the low-level DynamoDB API GetItem operation. Consult the GetItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.getItem(key).join();- Parameters:
key- AKeythat will be used to match a specific record to retrieve from the database table.- Returns:
- a
CompletableFutureof the retrieved item
-
getItem
default CompletableFuture<T> getItem(T keyItem)
Retrieves a single item from the mapped table using just the key of a supplied modelled 'key item'.This operation calls the low-level DynamoDB API GetItem operation. Consult the GetItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.getItem(keyItem).join();- Parameters:
keyItem- A modelled item with the primary key fields set that will be used to match a specific record to retrieve from the database table.- Returns:
- a
CompletableFutureof the retrieved item
-
getItemWithResponse
default CompletableFuture<GetItemEnhancedResponse<T>> getItemWithResponse(GetItemEnhancedRequest request)
Retrieves a single item from the mapped table using a supplied primaryKey. This is similar togetItem(GetItemEnhancedRequest)but returnsGetItemEnhancedResponsefor additional information.The additional configuration parameters that the enhanced client supports are defined in the
GetItemEnhancedRequest.This operation calls the low-level DynamoDB API GetItem operation. Consult the GetItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.getItemWithResponse(GetItemEnhancedRequest.builder().key(key).build()).join();- Parameters:
request- AGetItemEnhancedRequestwith key and optional directives for retrieving an item from the table.- Returns:
- a
CompletableFuturecontaining the response returned by DynamoDB.
-
getItemWithResponse
default CompletableFuture<GetItemEnhancedResponse<T>> getItemWithResponse(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)
Retrieves a single item from the mapped table using a supplied primaryKey. This is similar to#getItem(Consumerbut returns) GetItemEnhancedResponsefor additional information.The additional configuration parameters that the enhanced client supports are defined in the
GetItemEnhancedRequest.This operation calls the low-level DynamoDB API GetItem operation. Consult the GetItem documentation for further details and constraints.
Note: This is a convenience method that creates an instance of the request builder avoiding the need to create one manually via
GetItemEnhancedRequest.builder().Example:
MyItem item = mappedTable.getItemWithResponse(r -> r.key(key)).join();- Parameters:
requestConsumer- AConsumerofGetItemEnhancedRequest.Builderwith key and optional directives for retrieving an item from the table.- Returns:
- a
CompletableFuturecontaining the response returned by DynamoDB.
-
query
default PagePublisher<T> query(QueryEnhancedRequest request)
Executes a query against the primary index of the table using aQueryConditionalexpression to retrieve a list of items matching the given conditions.The return type is a custom publisher that can be subscribed to request a stream of
Pages or a stream of items across all pages. Results are sorted by sort key value in ascending order by default; this behavior can be overridden in theQueryEnhancedRequest.The additional configuration parameters that the enhanced client supports are defined in the
QueryEnhancedRequest.This operation calls the low-level DynamoDB API Query operation. Consult the Query documentation
DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)for further details and constraints.Example:
1) Subscribing to
PagesQueryConditional queryConditional = QueryConditional.keyEqualTo(Key.builder().partitionValue("id-value").build()); PagePublisher<MyItem> publisher = mappedTable.query(QueryEnhancedRequest.builder() .queryConditional(queryConditional) .build()); publisher.subscribe(page -> page.items().forEach(item -> System.out.println(item)));2) Subscribing to items across all pages
QueryConditional queryConditional = QueryConditional.keyEqualTo(Key.builder().partitionValue("id-value").build()); PagePublisher<MyItem> publisher = mappedTable.query(QueryEnhancedRequest.builder() .queryConditional(queryConditional) .build()) .items(); publisher.items().subscribe(item -> System.out.println(item));- Parameters:
request- AQueryEnhancedRequestdefining the query conditions and how to handle the results.- Returns:
- a publisher
PagePublisherwith paginated results (seePage). - See Also:
query(Consumer),query(QueryConditional),DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
-
query
default PagePublisher<T> query(Consumer<QueryEnhancedRequest.Builder> requestConsumer)
Executes a query against the primary index of the table using aQueryConditionalexpression to retrieve a list of items matching the given conditions.Note: This is a convenience method that creates an instance of the request builder avoiding the need to create one manually via
QueryEnhancedRequest.builder().Example:
PagePublisher<MyItem> publisher = mappedTable.query(r -> r.queryConditional(QueryConditional.keyEqualTo(k -> k.partitionValue("id-value"))));- Parameters:
requestConsumer- AConsumerofQueryEnhancedRequestdefining the query conditions and how to handle the results.- Returns:
- a publisher
PagePublisherwith paginated results (seePage). - See Also:
query(QueryEnhancedRequest),query(QueryConditional),DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
-
query
default PagePublisher<T> query(QueryConditional queryConditional)
Executes a query against the primary index of the table using aQueryConditionalexpression to retrieve a list of items matching the given conditions.The result is accessed through iterable pages (see
Page) in an interactive way; each time a result page is retrieved, a query call is made to DynamoDb to get those entries. If no matches are found, the resulting iterator will contain an empty page. Results are sorted by sort key value in ascending order.This operation calls the low-level DynamoDB API Query operation. Consult the Query documentation for further details and constraints.
Example:
PagePublisher<MyItem> results = mappedTable.query(QueryConditional.keyEqualTo(Key.builder().partitionValue("id-value").build()));- Parameters:
queryConditional- AQueryConditionaldefining the matching criteria for records to be queried.- Returns:
- a publisher
PagePublisherwith paginated results (seePage). - See Also:
query(QueryEnhancedRequest),query(Consumer),DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
-
putItem
default CompletableFuture<Void> putItem(PutItemEnhancedRequest<T> request)
Puts a single item in the mapped table. If the table contains an item with the same primary key, it will be replaced with this item.The additional configuration parameters that the enhanced client supports are defined in the
PutItemEnhancedRequest.This operation calls the low-level DynamoDB API PutItem operation. Consult the PutItem documentation for further details and constraints.
Example:
mappedTable.putItem(PutItemEnhancedRequest.builder(MyItem.class).item(item).build()).join();- Parameters:
request- APutItemEnhancedRequestthat includes the item to enter into the table, its class and optional directives.- Returns:
- a
CompletableFuturethat returns no results which will complete when the operation is done.
-
putItem
default CompletableFuture<Void> putItem(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
Puts a single item in the mapped table. If the table contains an item with the same primary key, it will be replaced with this item.The additional configuration parameters that the enhanced client supports are defined in the
PutItemEnhancedRequest.This operation calls the low-level DynamoDB API PutItem operation. Consult the PutItem documentation for further details and constraints.
Example:
mappedTable.putItem(r -> r.item(item)).join();- Parameters:
requestConsumer- AConsumerofPutItemEnhancedRequest.Builderthat includes the item to enter into the table, its class and optional directives.- Returns:
- a
CompletableFuturethat returns no results which will complete when the operation is done.
-
putItem
default CompletableFuture<Void> putItem(T item)
Puts a single item in the mapped table. If the table contains an item with the same primary key, it will be replaced with this item.This operation calls the low-level DynamoDB API PutItem operation. Consult the PutItem documentation for further details and constraints.
Example:
mappedTable.putItem(item);- Parameters:
item- the modelled item to be inserted into or overwritten in the database table.- Returns:
- a
CompletableFuturethat returns no results which will complete when the operation is done.
-
putItemWithResponse
default CompletableFuture<PutItemEnhancedResponse<T>> putItemWithResponse(PutItemEnhancedRequest<T> request)
Puts a single item in the mapped table. If the table contains an item with the same primary key, it will be replaced with this item. This is similar toputItem(PutItemEnhancedRequest)but returnsPutItemEnhancedResponsefor additional information.The additional configuration parameters that the enhanced client supports are defined in the
PutItemEnhancedRequest.This operation calls the low-level DynamoDB API PutItem operation. Consult the PutItem documentation for further details and constraints.
Example:
mappedTable.putItem(PutItemEnhancedRequest.builder(MyItem.class).item(item).build());- Parameters:
request- APutItemEnhancedRequestthat includes the item to enter into the table, its class and optional directives.- Returns:
- A
CompletableFuturethat contains the response returned by DynamoDB.
-
putItemWithResponse
default CompletableFuture<PutItemEnhancedResponse<T>> putItemWithResponse(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
Puts a single item in the mapped table. If the table contains an item with the same primary key, it will be replaced with this item. This is similar toputItem(PutItemEnhancedRequest)but returnsPutItemEnhancedResponsefor additional information.The additional configuration parameters that the enhanced client supports are defined in the
PutItemEnhancedRequest.This operation calls the low-level DynamoDB API PutItem operation. Consult the PutItem documentation for further details and constraints.
Example:
mappedTable.putItem(PutItemEnhancedRequest.builder(MyItem.class).item(item).build());- Parameters:
requestConsumer- AConsumerofPutItemEnhancedRequest.Builderthat includes the item to enter into the table, its class and optional directives.- Returns:
- A
CompletableFuturethat contains the response returned by DynamoDB.
-
scan
default PagePublisher<T> scan(ScanEnhancedRequest request)
Scans the table and retrieves all items.The return type is a custom publisher that can be subscribed to request a stream of
Pages or a stream of flattened items across all pages. Each time a result page is retrieved, a scan call is made to DynamoDb to get those entries. If no matches are found, the resulting iterator will contain an empty page.The additional configuration parameters that the enhanced client supports are defined in the
ScanEnhancedRequest.Example:
1) Subscribing to
PagesPagePublisher<MyItem> publisher = mappedTable.scan(ScanEnhancedRequest.builder().consistentRead(true).build()); publisher.subscribe(page -> page.items().forEach(item -> System.out.println(item)));2) Subscribing to items across all pages.
PagePublisher<MyItem> publisher = mappedTable.scan(ScanEnhancedRequest.builder().consistentRead(true).build()); publisher.items().subscribe(item -> System.out.println(item));- Parameters:
request- AScanEnhancedRequestdefining how to handle the results.- Returns:
- a publisher
PagePublisherwith paginated results (seePage). - See Also:
scan(Consumer),scan(),DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
-
scan
default PagePublisher<T> scan(Consumer<ScanEnhancedRequest.Builder> requestConsumer)
Scans the table and retrieves all items.Example:
PagePublisher<MyItem> publisher = mappedTable.scan(r -> r.limit(5));- Parameters:
requestConsumer- AConsumerofScanEnhancedRequestdefining the query conditions and how to handle the results.- Returns:
- a publisher
PagePublisherwith paginated results (seePage). - See Also:
scan(ScanEnhancedRequest),scan(),DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
-
scan
default PagePublisher<T> scan()
Scans the table and retrieves all items using default settings. Example:PagePublisher<MyItem> publisher = mappedTable.scan();- Returns:
- a publisher
PagePublisherwith paginated results (seePage). - See Also:
scan(ScanEnhancedRequest),scan(Consumer),DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
-
updateItem
default CompletableFuture<T> updateItem(UpdateItemEnhancedRequest<T> request)
Updates an item in the mapped table, or adds it if it doesn't exist.The additional configuration parameters that the enhanced client supports are defined in the
UpdateItemEnhancedRequest.This operation calls the low-level DynamoDB API UpdateItem operation. Consult the UpdateItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.updateItem(UpdateItemEnhancedRequest.builder(MyItem.class).item(item).build()).join();- Parameters:
request- AUpdateItemEnhancedRequestthat includes the item to be updated, its class and optional directives.- Returns:
- a
CompletableFutureof the updated item
-
updateItem
default CompletableFuture<T> updateItem(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
Updates an item in the mapped table, or adds it if it doesn't exist.The additional configuration parameters that the enhanced client supports are defined in the
UpdateItemEnhancedRequest.This operation calls the low-level DynamoDB API UpdateItem operation. Consult the UpdateItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.updateItem(r -> r.item(item)).join();- Parameters:
requestConsumer- AConsumerofUpdateItemEnhancedRequest.Builderthat includes the item to be updated, its class and optional directives.- Returns:
- a
CompletableFutureof the updated item
-
updateItem
default CompletableFuture<T> updateItem(T item)
Updates an item in the mapped table, or adds it if it doesn't exist.This operation calls the low-level DynamoDB API UpdateItem operation. Consult the UpdateItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.updateItem(item).join();- Parameters:
item- the modelled item to be inserted into or updated in the database table.- Returns:
- a
CompletableFutureof the updated item
-
updateItemWithResponse
default CompletableFuture<UpdateItemEnhancedResponse<T>> updateItemWithResponse(UpdateItemEnhancedRequest<T> request)
Updates an item in the mapped table, or adds it if it doesn't exist. This is similar toupdateItem(UpdateItemEnhancedRequest)} but returnsUpdateItemEnhancedResponsefor additional information.This operation calls the low-level DynamoDB API UpdateItem operation. Consult the UpdateItem documentation for further details and constraints.
Example:
UpdateItemEnhancedRequest<MyItem> request = UpdateItemEnhancedRequest.builder(MyItem.class).item(myItem).build(); UpdateItemEnhancedResponse<MyItem> response = mappedTable.updateItemWithResponse(request).join();- Parameters:
request- the modelled item to be inserted into or updated in the database table.- Returns:
- A
CompletableFuturecontaining the response from DynamoDB.
-
updateItemWithResponse
default CompletableFuture<UpdateItemEnhancedResponse<T>> updateItemWithResponse(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
Updates an item in the mapped table, or adds it if it doesn't exist. This is similar toupdateItem(Consumer)but returnsUpdateItemEnhancedResponsefor additional information.This operation calls the low-level DynamoDB API UpdateItem operation. Consult the UpdateItem documentation for further details and constraints.
Example:
UpdateItemEnhancedResponse<MyItem> response = mappedTable.updateItemWithResponse(r ->r.item(myItem)).join();- Parameters:
requestConsumer- AConsumerofUpdateItemEnhancedRequest.Builderthat includes the item * to be updated, its class and optional directives.- Returns:
- A
CompletableFuturecontaining the response from DynamoDB.
-
deleteTable
default CompletableFuture<Void> deleteTable()
Deletes a table in DynamoDb with the name and schema already defined for this DynamoDbTable.Use
DynamoDbEnhancedClient.table(String, TableSchema)to define the mapped table resource.This operation calls the low-level DynamoDB API DeleteTable operation. Note that this is an asynchronous operation and that the table may not immediately deleted. You can use
DynamoDbAsyncWaiter.waitUntilTableNotExists(software.amazon.awssdk.services.dynamodb.model.DescribeTableRequest)in the underlying client.Example:
mappedTable.deleteTable().join();- Returns:
- a
CompletableFutureofVoid.
-
describeTable
default CompletableFuture<DescribeTableEnhancedResponse> describeTable()
Describes a table in DynamoDb with the name defined for thisDynamoDbAsyncTable. This operation calls the low-level DynamoDB API DescribeTable operation, seeDynamoDbAsyncClient.describeTable(DescribeTableRequest)Example:
DescribeTableEnhancedResponse response = mappedTable.describeTable().join();
-
-