public class DefaultDynamoDbTable<T> extends Object implements DynamoDbTable<T>
| Modifier and Type | Method and Description |
|---|---|
void |
createTable()
Creates a new table in DynamoDb with the name and schema already defined for this DynamoDbTable.
|
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. |
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. |
T |
deleteItem(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
Deletes a single item from the mapped table using a supplied primary
Key. |
T |
deleteItem(DeleteItemEnhancedRequest request)
Deletes a single item from the mapped table using a supplied primary
Key. |
T |
deleteItem(Key key)
Deletes a single item from the mapped table using a supplied primary
Key. |
T |
deleteItem(T keyItem)
Deletes a single item from the mapped table using just the key of a supplied modelled 'key item' object.
|
DynamoDbClient |
dynamoDbClient() |
boolean |
equals(Object o) |
T |
getItem(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)
Retrieves a single item from the mapped table using a supplied primary
Key. |
T |
getItem(GetItemEnhancedRequest request)
Retrieves a single item from the mapped table using a supplied primary
Key. |
T |
getItem(Key key)
Retrieves a single item from the mapped table using a supplied primary
Key. |
T |
getItem(T keyItem)
Retrieves a single item from the mapped table using just the key of a supplied modelled 'key item'.
|
int |
hashCode() |
DefaultDynamoDbIndex<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. |
void |
putItem(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
Puts a single item in the mapped table.
|
void |
putItem(PutItemEnhancedRequest<T> request)
Puts a single item in the mapped table.
|
void |
putItem(T item)
Puts a single item in the mapped table.
|
PageIterable<T> |
query(Consumer<QueryEnhancedRequest.Builder> requestConsumer)
This is a convenience method that creates an instance of the request builder avoiding the need to create one
manually via
QueryEnhancedRequest.builder(). |
PageIterable<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. |
PageIterable<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. |
PageIterable<T> |
scan()
Scans the table and retrieves all items using default settings.
|
PageIterable<T> |
scan(Consumer<ScanEnhancedRequest.Builder> requestConsumer)
This is a convenience method that creates an instance of the request builder avoiding the need to create one
manually via
ScanEnhancedRequest.builder(). |
PageIterable<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. |
T |
updateItem(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
Updates an item in the mapped table, or adds it if it doesn't exist.
|
T |
updateItem(T item)
Updates an item in the mapped table, or adds it if it doesn't exist.
|
T |
updateItem(UpdateItemEnhancedRequest<T> request)
Updates an item in the mapped table, or adds it if it doesn't exist.
|
public DynamoDbEnhancedClientExtension mapperExtension()
MappedTableResourceDynamoDbEnhancedClientExtension associated with this mapped resource.mapperExtension in interface MappedTableResource<T>DynamoDbEnhancedClientExtension associated with this mapped resource.public TableSchema<T> tableSchema()
MappedTableResourceTableSchema object that this mapped table was built with.tableSchema in interface MappedTableResource<T>TableSchema object for this mapped table.public DynamoDbClient dynamoDbClient()
public String tableName()
MappedTableResourcetableName in interface MappedTableResource<T>public DefaultDynamoDbIndex<T> index(String indexName)
DynamoDbTableindex in interface DynamoDbTable<T>indexName - The name of the secondary index to build the command interface for.DynamoDbIndex object that can be used to execute database commands against.public void createTable(CreateTableEnhancedRequest request)
DynamoDbTableCreateTableEnhancedRequest.
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:
ProvisionedThroughput provisionedThroughput = ProvisionedThroughput.builder()
.readCapacityUnits(50L)
.writeCapacityUnits(50L)
.build();
mappedTable.createTable(CreateTableEnhancedRequest.builder()
.provisionedThroughput(provisionedThroughput)
.build());
createTable in interface DynamoDbTable<T>request - A CreateTableEnhancedRequest containing optional parameters for table creation.public void createTable(Consumer<CreateTableEnhancedRequest.Builder> requestConsumer)
DynamoDbTableCreateTableEnhancedRequest.
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.
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));
createTable in interface DynamoDbTable<T>requestConsumer - A Consumer of CreateTableEnhancedRequest.Builder containing optional
parameters for table creation.public void createTable()
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. 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();
createTable in interface DynamoDbTable<T>public T deleteItem(DeleteItemEnhancedRequest request)
DynamoDbTableKey.
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());
deleteItem in interface DynamoDbTable<T>request - A DeleteItemEnhancedRequest with key and optional directives for deleting an item from the
table.public T deleteItem(Consumer<DeleteItemEnhancedRequest.Builder> requestConsumer)
DynamoDbTableKey.
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));
deleteItem in interface DynamoDbTable<T>requestConsumer - A Consumer of DeleteItemEnhancedRequest with key and
optional directives for deleting an item from the table.public T deleteItem(Key key)
DynamoDbTableKey.
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);
deleteItem in interface DynamoDbTable<T>key - A Key that will be used to match a specific record to delete from the database table.public T deleteItem(T keyItem)
DynamoDbTableThis operation calls the low-level DynamoDB API DeleteItem operation. Consult the DeleteItem documentation for further details and constraints.
Example:
MyItem previouslyPersistedItem = mappedTable.deleteItem(keyItem);
deleteItem in interface DynamoDbTable<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.public T getItem(GetItemEnhancedRequest request)
DynamoDbTableKey.
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());
getItem in interface DynamoDbTable<T>request - A GetItemEnhancedRequest with key and optional directives for retrieving an item from the
table.public T getItem(Consumer<GetItemEnhancedRequest.Builder> requestConsumer)
DynamoDbTableKey.
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));
getItem in interface DynamoDbTable<T>requestConsumer - A Consumer of GetItemEnhancedRequest.Builder with key and optional
directives for retrieving an item from the table.public T getItem(Key key)
DynamoDbTableKey.
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);
getItem in interface DynamoDbTable<T>key - A Key that will be used to match a specific record to retrieve from the database table.public T getItem(T keyItem)
DynamoDbTableThis operation calls the low-level DynamoDB API GetItem operation. Consult the GetItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.getItem(keyItem);
getItem in interface DynamoDbTable<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.public PageIterable<T> query(QueryEnhancedRequest request)
DynamoDbTableQueryConditional expression to retrieve a
list of items matching the given conditions.
The result can be accessed either through iterable Pages or Page.items() directly. If you are iterating
the pages, 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 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 for further details and constraints.
Example:
1) Iterating through pages
QueryConditional queryConditional = QueryConditional.keyEqualTo(Key.builder().partitionValue("id-value").build());
PageIterable<MyItem> results = table.query(QueryEnhancedRequest.builder()
.queryConditional(queryConditional)
.build());
results.stream().forEach(p -> p.items().forEach(item -> System.out.println(item)))
2) Iterating through items
results.items().stream().forEach(item -> System.out.println(item));
query in interface DynamoDbTable<T>request - A QueryEnhancedRequest defining the query conditions and how
to handle the results.SdkIterable with paginated results (see Page).DynamoDbTable.query(QueryConditional),
DynamoDbTable.query(Consumer),
DynamoDbClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)public PageIterable<T> query(Consumer<QueryEnhancedRequest.Builder> requestConsumer)
DynamoDbTableQueryEnhancedRequest.builder().
Example:
PageIterable<MyItem> results =
mappedTable.query(r -> r.queryConditional(QueryConditional.keyEqualTo(k -> k.partitionValue("id-value"))));
query in interface DynamoDbTable<T>requestConsumer - A Consumer of QueryEnhancedRequest defining the query conditions and how to
handle the results.SdkIterable with paginated results (see Page).DynamoDbTable.query(QueryEnhancedRequest),
DynamoDbTable.query(QueryConditional)public PageIterable<T> query(QueryConditional queryConditional)
DynamoDbTableQueryConditional expression to retrieve a
list of items matching the given conditions.
Example:
PageIterable<MyItem> results =
mappedTable.query(QueryConditional.keyEqualTo(Key.builder().partitionValue("id-value").build()));
query in interface DynamoDbTable<T>queryConditional - A QueryConditional defining the matching criteria for records to be queried.SdkIterable with paginated results (see Page).DynamoDbTable.query(QueryEnhancedRequest),
DynamoDbTable.query(Consumer),
DynamoDbClient.queryPaginator(software.amazon.awssdk.services.dynamodb.model.QueryRequest)public void putItem(PutItemEnhancedRequest<T> request)
DynamoDbTable
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());
putItem in interface DynamoDbTable<T>request - A PutItemEnhancedRequest that includes the item to enter into
the table, its class and optional directives.public void putItem(Consumer<PutItemEnhancedRequest.Builder<T>> requestConsumer)
DynamoDbTable
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));
putItem in interface DynamoDbTable<T>requestConsumer - A Consumer of PutItemEnhancedRequest.Builder that includes the item
to enter into the table, its class and optional directives.public void putItem(T item)
DynamoDbTableThis 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 DynamoDbTable<T>item - the modelled item to be inserted into or overwritten in the database table.public PageIterable<T> scan(ScanEnhancedRequest request)
DynamoDbTable
The result can be accessed either through iterable Pages or items across all pages directly. 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.
The additional configuration parameters that the enhanced client supports are defined
in the ScanEnhancedRequest.
Example:
1) Iterating through pages
PageIterable<MyItem> results = mappedTable.scan(ScanEnhancedRequest.builder().consistentRead(true).build());
results.stream().forEach(p -> p.items().forEach(item -> System.out.println(item)))
2) Iterating through items
PageIterable<MyItem> results = mappedTable.scan(ScanEnhancedRequest.builder().consistentRead(true).build());
results.items().stream().forEach(item -> System.out.println(item));
scan in interface DynamoDbTable<T>request - A ScanEnhancedRequest defining how to handle the results.SdkIterable with paginated results (see Page).DynamoDbTable.scan(Consumer),
DynamoDbTable.scan(),
DynamoDbClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)public PageIterable<T> scan(Consumer<ScanEnhancedRequest.Builder> requestConsumer)
DynamoDbTableScanEnhancedRequest.builder().
Example:
PageIterable<MyItem> results = mappedTable.scan(r -> r.limit(5));
scan in interface DynamoDbTable<T>requestConsumer - A Consumer of ScanEnhancedRequest defining the query conditions and how to
handle the results.SdkIterable with paginated results (see Page).DynamoDbTable.scan(ScanEnhancedRequest),
DynamoDbTable.scan()public PageIterable<T> scan()
DynamoDbTable
The result can be accessed either through iterable Pages or items across all pages directly. 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.
Example:
PageIterable<MyItem> results = mappedTable.scan();
scan in interface DynamoDbTable<T>SdkIterable with paginated results (see Page).DynamoDbTable.scan(ScanEnhancedRequest),
DynamoDbTable.scan(Consumer),
DynamoDbClient.scanPaginator(software.amazon.awssdk.services.dynamodb.model.ScanRequest)public T updateItem(UpdateItemEnhancedRequest<T> request)
DynamoDbTable
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());
updateItem in interface DynamoDbTable<T>request - A UpdateItemEnhancedRequest that includes the item to be updated,
its class and optional directives.public T updateItem(Consumer<UpdateItemEnhancedRequest.Builder<T>> requestConsumer)
DynamoDbTable
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));
updateItem in interface DynamoDbTable<T>requestConsumer - A Consumer of UpdateItemEnhancedRequest.Builder that includes the item
to be updated, its class and optional directives.public T updateItem(T item)
DynamoDbTableThis operation calls the low-level DynamoDB API UpdateItem operation. Consult the UpdateItem documentation for further details and constraints.
Example:
MyItem item = mappedTable.updateItem(item);
updateItem in interface DynamoDbTable<T>item - the modelled item to be inserted into or updated in the database table.public Key keyFrom(T item)
MappedTableResourceKey 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.Copyright © 2020. All rights reserved.