Class DynamoDbTemplate

java.lang.Object
io.awspring.cloud.dynamodb.DynamoDbTemplate
All Implemented Interfaces:
DynamoDbOperations

public class DynamoDbTemplate extends Object implements DynamoDbOperations
Default implementation of DynamoDbOperations.
Since:
3.0
Author:
Matej Nedic, Arun Patra
  • Constructor Summary

    Constructors
    Constructor
    Description
    DynamoDbTemplate(String tablePrefix, software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient dynamoDbEnhancedClient)
     
    DynamoDbTemplate(software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient dynamoDbEnhancedClient)
     
    DynamoDbTemplate(software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient dynamoDbEnhancedClient, DynamoDbTableSchemaResolver dynamoDbTableSchemaResolver, DynamoDbTableNameResolver dynamoDbTableNameResolver)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    delete(software.amazon.awssdk.enhanced.dynamodb.Key key, Class<?> clazz)
    Deletes a record for a given Key.
    <T> void
    delete(T entity)
    Deletes a record for a given Entity.
    <T> T
    load(software.amazon.awssdk.enhanced.dynamodb.Key key, Class<T> clazz)
    Loads entity for a given Key.
    <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T>
    query(software.amazon.awssdk.enhanced.dynamodb.model.QueryEnhancedRequest queryEnhancedRequest, Class<T> clazz)
    Queries a data for a given request.
    <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T>
    query(software.amazon.awssdk.enhanced.dynamodb.model.QueryEnhancedRequest queryEnhancedRequest, Class<T> clazz, String indexName)
    Queries a GlobalSecondaryIndex for a given request and given indexName.
    <T> T
    save(T entity)
    Saves Entity to DynamoDB table.
    <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T>
    scan(software.amazon.awssdk.enhanced.dynamodb.model.ScanEnhancedRequest scanEnhancedRequest, Class<T> clazz)
    Scans Table using given request.
    <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T>
    scan(software.amazon.awssdk.enhanced.dynamodb.model.ScanEnhancedRequest scanEnhancedRequest, Class<T> clazz, String indexName)
    Scans GlobalSecondaryIndex using given indexName and request.
    <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T>
    scanAll(Class<T> clazz)
    Scans whole DynamoDB table.
    <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T>
    scanAll(Class<T> clazz, String indexName)
    Scans whole GlobalSecondaryIndex for given indexName.
    <T> T
    update(T entity)
    Updated Entity to DynamoDB table.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DynamoDbTemplate

      public DynamoDbTemplate(@Nullable String tablePrefix, software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient dynamoDbEnhancedClient)
    • DynamoDbTemplate

      public DynamoDbTemplate(software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient dynamoDbEnhancedClient)
    • DynamoDbTemplate

      public DynamoDbTemplate(software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient dynamoDbEnhancedClient, DynamoDbTableSchemaResolver dynamoDbTableSchemaResolver, DynamoDbTableNameResolver dynamoDbTableNameResolver)
  • Method Details

    • save

      public <T> T save(T entity)
      Description copied from interface: DynamoDbOperations
      Saves Entity to DynamoDB table.
      Specified by:
      save in interface DynamoDbOperations
      Type Parameters:
      T - Type of Entity object.
      Parameters:
      entity - - Entity to be saved.
    • update

      public <T> T update(T entity)
      Description copied from interface: DynamoDbOperations
      Updated Entity to DynamoDB table.
      Specified by:
      update in interface DynamoDbOperations
      Type Parameters:
      T - Type of Entity object.
      Parameters:
      entity - - Entity to be saved.
    • delete

      public void delete(software.amazon.awssdk.enhanced.dynamodb.Key key, Class<?> clazz)
      Description copied from interface: DynamoDbOperations
      Deletes a record for a given Key.
      Specified by:
      delete in interface DynamoDbOperations
      Parameters:
      key - to determine record in DynamoDB table.
      clazz - Class of entity being deleted so TableSchema can be generated.
    • delete

      public <T> void delete(T entity)
      Description copied from interface: DynamoDbOperations
      Deletes a record for a given Entity.
      Specified by:
      delete in interface DynamoDbOperations
      Parameters:
      entity - Entity object for deletion.
    • load

      @Nullable public <T> T load(software.amazon.awssdk.enhanced.dynamodb.Key key, Class<T> clazz)
      Description copied from interface: DynamoDbOperations
      Loads entity for a given Key.
      Specified by:
      load in interface DynamoDbOperations
      Type Parameters:
      T - Type of Entity object.
      Parameters:
      key - to determine record in DynamoDB table.
      clazz - Class of entity being fetched so TableSchema can be generated.
    • scan

      public <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T> scan(software.amazon.awssdk.enhanced.dynamodb.model.ScanEnhancedRequest scanEnhancedRequest, Class<T> clazz)
      Description copied from interface: DynamoDbOperations
      Scans Table using given request.
      Specified by:
      scan in interface DynamoDbOperations
      Type Parameters:
      T - type of Entity object.
      Parameters:
      scanEnhancedRequest - request used by DynamoDbEnhancedClient to execute scan request.
      clazz - of entity being fetched so TableSchema can be generated.
      Returns:
      Iterable object which can be used to iterate pages and items.
    • scan

      public <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T> scan(software.amazon.awssdk.enhanced.dynamodb.model.ScanEnhancedRequest scanEnhancedRequest, Class<T> clazz, String indexName)
      Description copied from interface: DynamoDbOperations
      Scans GlobalSecondaryIndex using given indexName and request.
      Specified by:
      scan in interface DynamoDbOperations
      Type Parameters:
      T - type of Entity object.
      Parameters:
      scanEnhancedRequest - request used by DynamoDbEnhancedClient to execute scan request.
      clazz - of entity being fetched so TableSchema can be generated.
      indexName - name of index that will be used with ScanEnhancedRequest.
      Returns:
      Iterable object which can be used to iterate pages and items.
    • scanAll

      public <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T> scanAll(Class<T> clazz, String indexName)
      Description copied from interface: DynamoDbOperations
      Scans whole GlobalSecondaryIndex for given indexName.
      Specified by:
      scanAll in interface DynamoDbOperations
      Type Parameters:
      T - type of Entity object.
      Parameters:
      clazz - of entity being fetched so TableSchema can be generated.
      indexName - name of index that will be used when scanning.
      Returns:
      Iterable object which can be used to iterate pages and items.
    • query

      public <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T> query(software.amazon.awssdk.enhanced.dynamodb.model.QueryEnhancedRequest queryEnhancedRequest, Class<T> clazz, String indexName)
      Description copied from interface: DynamoDbOperations
      Queries a GlobalSecondaryIndex for a given request and given indexName.
      Specified by:
      query in interface DynamoDbOperations
      Type Parameters:
      T - type of Entity object.
      Parameters:
      queryEnhancedRequest - Request that is used by DynamoDbEnhancedClient to execute query request.
      clazz - of entity being fetched so TableSchema can be generated.
      indexName - name of index that will be used with QueryEnhancedRequest.
      Returns:
      Iterable object which can be used to iterate pages and items.
    • scanAll

      public <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T> scanAll(Class<T> clazz)
      Description copied from interface: DynamoDbOperations
      Scans whole DynamoDB table.
      Specified by:
      scanAll in interface DynamoDbOperations
      Type Parameters:
      T - type of Entity object.
      Parameters:
      clazz - of entity being fetched so TableSchema can be generated.
      Returns:
      Iterable object which can be used to iterate pages and items.
    • query

      public <T> software.amazon.awssdk.enhanced.dynamodb.model.PageIterable<T> query(software.amazon.awssdk.enhanced.dynamodb.model.QueryEnhancedRequest queryEnhancedRequest, Class<T> clazz)
      Description copied from interface: DynamoDbOperations
      Queries a data for a given request.
      Specified by:
      query in interface DynamoDbOperations
      Type Parameters:
      T - Type of Entity object.
      Parameters:
      queryEnhancedRequest - Request that is used by DynamoDbEnhancedClient to execute query request.
      clazz - of entity being fetched so TableSchema can be generated.
      Returns:
      Iterable object which can be used to iterate pages and items.