public final class DefaultDynamoDbAsyncTable<T> extends Object implements DynamoDbAsyncTable<T>
Modifier and Type | Method and Description |
---|---|
CompletableFuture<Void> |
createTable()
Creates a new table in DynamoDb with the name and schema already defined for this DynamoDbTable.
|
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 . |
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 . |
CompletableFuture<T> |
deleteItem(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
Deletes a single item from the mapped table using a supplied primary
Key . |
CompletableFuture<T> |
deleteItem(DeleteItemEnhancedRequest request)
Deletes a single item from the mapped table using a supplied primary
Key . |
CompletableFuture<T> |
deleteItem(Key key)
Deletes a single item from the mapped table using a supplied primary
Key . |
CompletableFuture<T> |
deleteItem(T keyItem)
Deletes a single item from the mapped table using just the key of a supplied modelled 'key item' object.
|
CompletableFuture<DeleteItemEnhancedResponse<T>> |
deleteItemWithResponse(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
Deletes a single item from the mapped table using a supplied primary
Key . |
CompletableFuture<DeleteItemEnhancedResponse<T>> |
deleteItemWithResponse(DeleteItemEnhancedRequest request)
Deletes a single item from the mapped table using a supplied primary
Key . |
CompletableFuture<Void> |
deleteTable()
Deletes a table in DynamoDb with the name and schema already defined for this DynamoDbTable.
|
CompletableFuture<DescribeTableEnhancedResponse> |
describeTable()
Describes a table in DynamoDb with the name defined for this {@link DynamoDbAsyncTable).
|
DynamoDbAsyncClient |
dynamoDbClient() |
boolean |
equals(Object o) |
CompletableFuture<T> |
getItem(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)
Retrieves a single item from the mapped table using a supplied primary
Key . |
CompletableFuture<T> |
getItem(GetItemEnhancedRequest request)
Retrieves a single item from the mapped table using a supplied primary
Key . |
CompletableFuture<T> |
getItem(Key key)
Retrieves a single item from the mapped table using a supplied primary
Key . |
CompletableFuture<T> |
getItem(T keyItem)
Retrieves a single item from the mapped table using just the key of a supplied modelled 'key item'.
|
int |
hashCode() |
DefaultDynamoDbAsyncIndex<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.
|
Key |
keyFrom(T item)
Creates a
Key object from a modelled item. |
DynamoDbEnhancedClientExtension |
mapperExtension()
Gets the
DynamoDbEnhancedClientExtension associated with this mapped resource. |
CompletableFuture<Void> |
putItem(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
Puts a single item in the mapped table.
|
CompletableFuture<Void> |
putItem(PutItemEnhancedRequest<T> request)
Puts a single item in the mapped table.
|
CompletableFuture<Void> |
putItem(T item)
Puts a single item in the mapped table.
|
CompletableFuture<PutItemEnhancedResponse<T>> |
putItemWithResponse(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
Puts a single item in the mapped table.
|
CompletableFuture<PutItemEnhancedResponse<T>> |
putItemWithResponse(PutItemEnhancedRequest<T> request)
Puts a single item in the mapped table.
|
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. |
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. |
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. |
PagePublisher<T> |
scan()
Scans the table and retrieves all items using default settings.
|
PagePublisher<T> |
scan(Consumer<ScanEnhancedRequest.Builder> requestConsumer)
Scans the table and retrieves all items.
|
PagePublisher<T> |
scan(ScanEnhancedRequest request)
Scans the table and retrieves all items.
|
String |
tableName()
Gets the physical table name that operations performed by this object will be executed against.
|
TableSchema<T> |
tableSchema()
Gets the
TableSchema object that this mapped table was built with. |
CompletableFuture<T> |
updateItem(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
Updates an item in the mapped table, or adds it if it doesn't exist.
|
CompletableFuture<T> |
updateItem(T item)
Updates an item in the mapped table, or adds it if it doesn't exist.
|
CompletableFuture<T> |
updateItem(UpdateItemEnhancedRequest<T> request)
Updates an item in the mapped table, or adds it if it doesn't exist.
|
CompletableFuture<UpdateItemEnhancedResponse<T>> |
updateItemWithResponse(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
Updates an item in the mapped table, or adds it if it doesn't exist.
|
CompletableFuture<UpdateItemEnhancedResponse<T>> |
updateItemWithResponse(UpdateItemEnhancedRequest<T> request)
Updates an item in the mapped table, or adds it if it doesn't exist.
|
public DynamoDbEnhancedClientExtension mapperExtension()
MappedTableResource
DynamoDbEnhancedClientExtension
associated with this mapped resource.mapperExtension
in interface MappedTableResource<T>
DynamoDbEnhancedClientExtension
associated with this mapped resource.public TableSchema<T> tableSchema()
MappedTableResource
TableSchema
object that this mapped table was built with.tableSchema
in interface MappedTableResource<T>
TableSchema
object for this mapped table.public DynamoDbAsyncClient dynamoDbClient()
public String tableName()
MappedTableResource
tableName
in interface MappedTableResource<T>
public DefaultDynamoDbAsyncIndex<T> index(String indexName)
DynamoDbAsyncTable
index
in interface DynamoDbAsyncTable<T>
indexName
- The name of the secondary index to build the command interface for.DynamoDbAsyncIndex
object that can be used to execute database commands against.public CompletableFuture<Void> createTable(CreateTableEnhancedRequest request)
DynamoDbAsyncTable
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();
createTable
in interface DynamoDbAsyncTable<T>
request
- A CreateTableEnhancedRequest
containing optional parameters for table creation.CompletableFuture
of Void
.public CompletableFuture<Void> createTable(Consumer<CreateTableEnhancedRequest.Builder> requestConsumer)
DynamoDbAsyncTable
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();
createTable
in interface DynamoDbAsyncTable<T>
requestConsumer
- A Consumer
of CreateTableEnhancedRequest.Builder
containing optional parameters
for table creation.CompletableFuture
of Void
.public CompletableFuture<Void> createTable()
DynamoDbAsyncTable
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();
createTable
in interface DynamoDbAsyncTable<T>
CompletableFuture
of Void
.public CompletableFuture<T> deleteItem(DeleteItemEnhancedRequest request)
DynamoDbAsyncTable
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();
deleteItem
in interface DynamoDbAsyncTable<T>
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.public CompletableFuture<T> deleteItem(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
DynamoDbAsyncTable
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();
deleteItem
in interface DynamoDbAsyncTable<T>
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.public CompletableFuture<T> deleteItem(Key key)
DynamoDbAsyncTable
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;
deleteItem
in interface DynamoDbAsyncTable<T>
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.public CompletableFuture<T> deleteItem(T keyItem)
DynamoDbAsyncTable
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();
deleteItem
in interface DynamoDbAsyncTable<T>
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.public CompletableFuture<DeleteItemEnhancedResponse<T>> deleteItemWithResponse(DeleteItemEnhancedRequest request)
DynamoDbAsyncTable
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. Unlike DynamoDbAsyncTable.deleteItem(DeleteItemEnhancedRequest)
, this returns a response object,
allowing the user to retrieve additional information from DynamoDB related to the API call, such as
ConsumedCapacity
if specified on the request.
Example:
DeleteItemEnhancedRequest request = DeleteItemEnhancedRequest.builder().key(key).build();
DeleteItemEnhancedResponse<MyItem> response = mappedTable.deleteItemWithResponse(request).join();
deleteItemWithResponse
in interface DynamoDbAsyncTable<T>
request
- A DeleteItemEnhancedRequest
with key and optional directives for deleting an item from the
table.CompletableFuture
containing the response returned by DynamoDB.public CompletableFuture<DeleteItemEnhancedResponse<T>> deleteItemWithResponse(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
DynamoDbAsyncTable
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. Unlike DynamoDbAsyncTable.deleteItem(Consumer)
, this returns a response object, allowing the user to
retrieve additional information from DynamoDB related to the API call, such as ConsumedCapacity
if 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();
deleteItemWithResponse
in interface DynamoDbAsyncTable<T>
requestConsumer
- A Consumer
of DeleteItemEnhancedRequest
with key and
optional directives for deleting an item from the table.CompletableFuture
containing the response returned by DynamoDB.public CompletableFuture<T> getItem(GetItemEnhancedRequest request)
DynamoDbAsyncTable
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();
getItem
in interface DynamoDbAsyncTable<T>
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.public CompletableFuture<T> getItem(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)
DynamoDbAsyncTable
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();
getItem
in interface DynamoDbAsyncTable<T>
requestConsumer
- A Consumer
of GetItemEnhancedRequest.Builder
with key and optional directives
for retrieving an item from the table.CompletableFuture
of the retrieved itempublic CompletableFuture<T> getItem(Key key)
DynamoDbAsyncTable
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();
getItem
in interface DynamoDbAsyncTable<T>
key
- A Key
that will be used to match a specific record to retrieve from the database table.CompletableFuture
of the retrieved itempublic CompletableFuture<T> getItem(T keyItem)
DynamoDbAsyncTable
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();
getItem
in interface DynamoDbAsyncTable<T>
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 itempublic PagePublisher<T> query(QueryEnhancedRequest request)
DynamoDbAsyncTable
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));
query
in interface DynamoDbAsyncTable<T>
request
- A QueryEnhancedRequest
defining the query conditions and how
to handle the results.PagePublisher
with paginated results (see Page
).DynamoDbAsyncTable.query(Consumer)
,
DynamoDbAsyncTable.query(QueryConditional)
,
DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
public PagePublisher<T> query(Consumer<QueryEnhancedRequest.Builder> requestConsumer)
DynamoDbAsyncTable
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"))));
query
in interface DynamoDbAsyncTable<T>
requestConsumer
- A Consumer
of QueryEnhancedRequest
defining the query conditions and how to
handle the results.PagePublisher
with paginated results (see Page
).DynamoDbAsyncTable.query(QueryEnhancedRequest)
,
DynamoDbAsyncTable.query(QueryConditional)
,
DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
public PagePublisher<T> query(QueryConditional queryConditional)
DynamoDbAsyncTable
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()));
query
in interface DynamoDbAsyncTable<T>
queryConditional
- A QueryConditional
defining the matching criteria for records to be queried.PagePublisher
with paginated results (see Page
).DynamoDbAsyncTable.query(QueryEnhancedRequest)
,
DynamoDbAsyncTable.query(Consumer)
,
DynamoDbAsyncClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)
public CompletableFuture<Void> putItem(PutItemEnhancedRequest<T> request)
DynamoDbAsyncTable
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();
putItem
in interface DynamoDbAsyncTable<T>
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.public CompletableFuture<Void> putItem(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
DynamoDbAsyncTable
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();
putItem
in interface DynamoDbAsyncTable<T>
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.public CompletableFuture<Void> putItem(T item)
DynamoDbAsyncTable
This operation calls the low-level DynamoDB API PutItem operation. Consult the PutItem documentation for further details and constraints.
Example:
mappedTable.putItem(item);
putItem
in interface DynamoDbAsyncTable<T>
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.public CompletableFuture<PutItemEnhancedResponse<T>> putItemWithResponse(PutItemEnhancedRequest<T> request)
DynamoDbAsyncTable
DynamoDbAsyncTable.putItem(PutItemEnhancedRequest)
but returns
PutItemEnhancedResponse
for 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());
putItemWithResponse
in interface DynamoDbAsyncTable<T>
request
- A PutItemEnhancedRequest
that includes the item to enter into
the table, its class and optional directives.CompletableFuture
that contains the response returned by DynamoDB.public CompletableFuture<PutItemEnhancedResponse<T>> putItemWithResponse(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
DynamoDbAsyncTable
DynamoDbAsyncTable.putItem(PutItemEnhancedRequest)
but returns
PutItemEnhancedResponse
for 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());
putItemWithResponse
in interface DynamoDbAsyncTable<T>
requestConsumer
- A Consumer
of PutItemEnhancedRequest.Builder
that includes the item
to enter into the table, its class and optional directives.CompletableFuture
that contains the response returned by DynamoDB.public PagePublisher<T> scan(ScanEnhancedRequest request)
DynamoDbAsyncTable
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));
scan
in interface DynamoDbAsyncTable<T>
request
- A ScanEnhancedRequest
defining how to handle the results.PagePublisher
with paginated results (see Page
).DynamoDbAsyncTable.scan(Consumer)
,
DynamoDbAsyncTable.scan()
,
DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
public PagePublisher<T> scan(Consumer<ScanEnhancedRequest.Builder> requestConsumer)
DynamoDbAsyncTable
Example:
PagePublisher<MyItem> publisher = mappedTable.scan(r -> r.limit(5));
scan
in interface DynamoDbAsyncTable<T>
requestConsumer
- A Consumer
of ScanEnhancedRequest
defining the query conditions and how to
handle the results.PagePublisher
with paginated results (see Page
).DynamoDbAsyncTable.scan(ScanEnhancedRequest)
,
DynamoDbAsyncTable.scan()
,
DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
public PagePublisher<T> scan()
DynamoDbAsyncTable
PagePublisher<MyItem> publisher = mappedTable.scan();
scan
in interface DynamoDbAsyncTable<T>
PagePublisher
with paginated results (see Page
).DynamoDbAsyncTable.scan(ScanEnhancedRequest)
,
DynamoDbAsyncTable.scan(Consumer)
,
DynamoDbAsyncClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)
public CompletableFuture<T> updateItem(UpdateItemEnhancedRequest<T> request)
DynamoDbAsyncTable
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();
updateItem
in interface DynamoDbAsyncTable<T>
request
- A UpdateItemEnhancedRequest
that includes the item to be updated,
its class and optional directives.CompletableFuture
of the updated itempublic CompletableFuture<T> updateItem(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
DynamoDbAsyncTable
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();
updateItem
in interface DynamoDbAsyncTable<T>
requestConsumer
- A Consumer
of UpdateItemEnhancedRequest.Builder
that includes the item
to be updated, its class and optional directives.CompletableFuture
of the updated itempublic CompletableFuture<UpdateItemEnhancedResponse<T>> updateItemWithResponse(UpdateItemEnhancedRequest<T> request)
DynamoDbAsyncTable
DynamoDbAsyncTable.updateItem(UpdateItemEnhancedRequest)
} but returns UpdateItemEnhancedResponse
for 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();
updateItemWithResponse
in interface DynamoDbAsyncTable<T>
request
- the modelled item to be inserted into or updated in the database table.CompletableFuture
containing the response from DynamoDB.public CompletableFuture<UpdateItemEnhancedResponse<T>> updateItemWithResponse(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
DynamoDbAsyncTable
DynamoDbAsyncTable.updateItem(Consumer)
but returns UpdateItemEnhancedResponse
for 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();
updateItemWithResponse
in interface DynamoDbAsyncTable<T>
requestConsumer
- A Consumer
of UpdateItemEnhancedRequest.Builder
that includes the item
* to be updated, its class and optional directives.CompletableFuture
containing the response from DynamoDB.public CompletableFuture<T> updateItem(T item)
DynamoDbAsyncTable
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();
updateItem
in interface DynamoDbAsyncTable<T>
item
- the modelled item to be inserted into or updated in the database table.CompletableFuture
of the updated itempublic Key keyFrom(T item)
MappedTableResource
Key
object from a modelled item. This key can be used in query conditionals and get
operations to locate a specific record.keyFrom
in interface MappedTableResource<T>
item
- The item to extract the key fields from.public CompletableFuture<Void> deleteTable()
DynamoDbAsyncTable
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();
deleteTable
in interface DynamoDbAsyncTable<T>
CompletableFuture
of Void
.public CompletableFuture<DescribeTableEnhancedResponse> describeTable()
DynamoDbAsyncTable
Example:
{@code DescribeTableEnhancedResponse response = mappedTable.describeTable().join(); }
describeTable
in interface DynamoDbAsyncTable<T>
Copyright © 2022. All rights reserved.