T
- The type of the modelled object.public interface DynamoDbAsyncTable<T> extends MappedTableResource<T>
By default, all command methods throw an UnsupportedOperationException
to prevent interface extensions from breaking
implementing classes.
Modifier and Type | Method and 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 primary
Key . |
default CompletableFuture<T> |
deleteItem(DeleteItemEnhancedRequest request)
Deletes a single item from the mapped table using a supplied primary
Key . |
default CompletableFuture<T> |
deleteItem(Key key)
Deletes a single item from the mapped table using a supplied primary
Key . |
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<Void> |
deleteTable()
Deletes a table in DynamoDb with the name and schema already defined for this DynamoDbTable.
|
default CompletableFuture<T> |
getItem(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)
Retrieves a single item from the mapped table using a supplied primary
Key . |
default CompletableFuture<T> |
getItem(GetItemEnhancedRequest request)
Retrieves a single item from the mapped table using a supplied primary
Key . |
default CompletableFuture<T> |
getItem(Key key)
Retrieves a single item from the mapped table using a supplied primary
Key . |
default CompletableFuture<T> |
getItem(T keyItem)
Retrieves a single item from the mapped table using just the key of a supplied modelled 'key item'.
|
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 PagePublisher<T> |
query(Consumer<QueryEnhancedRequest.Builder> requestConsumer)
Executes a query against the primary index of the table using a
QueryConditional expression 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 a
QueryConditional expression 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 a
QueryConditional expression 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(T item)
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.
|
keyFrom, mapperExtension, tableName, tableSchema
DynamoDbAsyncIndex<T> index(String indexName)
indexName
- The name of the secondary index to build the command interface for.DynamoDbAsyncIndex
object that can be used to execute database commands against.default CompletableFuture<Void> createTable(CreateTableEnhancedRequest request)
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. Consult the CreateTable documentation for further details and constraints.
Example:
ProvisionedThroughput provisionedThroughput = ProvisionedThroughput.builder()
.readCapacityUnits(50L)
.writeCapacityUnits(50L)
.build();
mappedTable.createTable(CreateTableEnhancedRequest.builder()
.provisionedThroughput(provisionedThroughput)
.build())
.join();
request
- A CreateTableEnhancedRequest
containing optional parameters for table creation.CompletableFuture
of Void
.default CompletableFuture<Void> createTable(Consumer<CreateTableEnhancedRequest.Builder> requestConsumer)
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. Consult the CreateTable 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 CreateTableEnhancedRequest.builder()
.
Example:
ProvisionedThroughput provisionedThroughput = ProvisionedThroughput.builder()
.readCapacityUnits(50L)
.writeCapacityUnits(50L)
.build();
mappedTable.createTable(r -> r.provisionedThroughput(provisionedThroughput)).join();
requestConsumer
- A Consumer
of CreateTableEnhancedRequest.Builder
containing optional parameters
for table creation.CompletableFuture
of Void
.default CompletableFuture<Void> createTable()
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. Currently, there is no mechanism supported within this library to wait for/check the status of a created table. You must provide this functionality yourself. Consult the CreateTable documentation for further details and constraints.
Example:
mappedTable.createTable().join();
CompletableFuture
of Void
.default CompletableFuture<T> deleteItem(DeleteItemEnhancedRequest request)
Key
.
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();
request
- A DeleteItemEnhancedRequest
with key and optional directives for deleting an item from the table.CompletableFuture
of the item that was persisted in the database before it was deleted.default CompletableFuture<T> deleteItem(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
Key
.
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();
requestConsumer
- A Consumer
of DeleteItemEnhancedRequest
with key and
optional directives for deleting an item from the table.CompletableFuture
of the item that was persisted in the database before it was deleted.default CompletableFuture<T> deleteItem(Key key)
Key
.
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;
key
- A Key
that will be used to match a specific record to delete from the database table.CompletableFuture
of the item that was persisted in the database before it was deleted.default CompletableFuture<T> deleteItem(T keyItem)
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();
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.CompletableFuture
of the item that was persisted in the database before it was deleted.default CompletableFuture<T> getItem(GetItemEnhancedRequest request)
Key
.
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();
request
- A GetItemEnhancedRequest
with key and optional directives for retrieving an item from the table.CompletableFuture
of the item that was persisted in the database before it was deleted.default CompletableFuture<T> getItem(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)
Key
.
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();
requestConsumer
- A Consumer
of GetItemEnhancedRequest.Builder
with key and optional directives
for retrieving an item from the table.CompletableFuture
of the retrieved itemdefault CompletableFuture<T> getItem(Key key)
Key
.
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();
key
- A Key
that will be used to match a specific record to retrieve from the database table.CompletableFuture
of the retrieved itemdefault CompletableFuture<T> getItem(T keyItem)
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();
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.CompletableFuture
of the retrieved itemdefault PagePublisher<T> query(QueryEnhancedRequest request)
QueryConditional
expression 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 Page
s 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 the QueryEnhancedRequest
.
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 Page
s
QueryConditional 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));
request
- A QueryEnhancedRequest
defining the query conditions and how
to handle the results.PagePublisher
with paginated results (see Page
).query(Consumer)
,
query(QueryConditional)
,
DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
default PagePublisher<T> query(Consumer<QueryEnhancedRequest.Builder> requestConsumer)
QueryConditional
expression 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"))));
requestConsumer
- A Consumer
of QueryEnhancedRequest
defining the query conditions and how to
handle the results.PagePublisher
with paginated results (see Page
).query(QueryEnhancedRequest)
,
query(QueryConditional)
,
DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
default PagePublisher<T> query(QueryConditional queryConditional)
QueryConditional
expression 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()));
queryConditional
- A QueryConditional
defining the matching criteria for records to be queried.PagePublisher
with paginated results (see Page
).query(QueryEnhancedRequest)
,
query(Consumer)
,
DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
default CompletableFuture<Void> putItem(PutItemEnhancedRequest<T> request)
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();
request
- A PutItemEnhancedRequest
that includes the item to enter into
the table, its class and optional directives.CompletableFuture
that returns no results which will complete when the operation is done.default CompletableFuture<Void> putItem(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
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();
requestConsumer
- A Consumer
of PutItemEnhancedRequest.Builder
that includes the item
to enter into the table, its class and optional directives.CompletableFuture
that returns no results which will complete when the operation is done.default CompletableFuture<Void> putItem(T item)
This operation calls the low-level DynamoDB API PutItem operation. Consult the PutItem documentation for further details and constraints.
Example:
mappedTable.putItem(item);
item
- the modelled item to be inserted into or overwritten in the database table.CompletableFuture
that returns no results which will complete when the operation is done.default PagePublisher<T> scan(ScanEnhancedRequest request)
The return type is a custom publisher that can be subscribed to request a stream of Page
s 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 Page
s
PagePublisher<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));
request
- A ScanEnhancedRequest
defining how to handle the results.PagePublisher
with paginated results (see Page
).scan(Consumer)
,
scan()
,
DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
default PagePublisher<T> scan(Consumer<ScanEnhancedRequest.Builder> requestConsumer)
Example:
PagePublisher<MyItem> publisher = mappedTable.scan(r -> r.limit(5));
requestConsumer
- A Consumer
of ScanEnhancedRequest
defining the query conditions and how to
handle the results.PagePublisher
with paginated results (see Page
).scan(ScanEnhancedRequest)
,
scan()
,
DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
default PagePublisher<T> scan()
PagePublisher<MyItem> publisher = mappedTable.scan();
PagePublisher
with paginated results (see Page
).scan(ScanEnhancedRequest)
,
scan(Consumer)
,
DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
default CompletableFuture<T> updateItem(UpdateItemEnhancedRequest<T> request)
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();
request
- A UpdateItemEnhancedRequest
that includes the item to be updated,
its class and optional directives.CompletableFuture
of the updated itemdefault CompletableFuture<T> updateItem(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
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();
requestConsumer
- A Consumer
of UpdateItemEnhancedRequest.Builder
that includes the item
to be updated, its class and optional directives.CompletableFuture
of the updated itemdefault CompletableFuture<T> updateItem(T item)
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();
item
- the modelled item to be inserted into or updated in the database table.CompletableFuture
of the updated itemdefault CompletableFuture<Void> deleteTable()
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();
CompletableFuture
of Void
.Copyright © 2021. All rights reserved.