Class DynamoDBTemplate

  • All Implemented Interfaces:
    DynamoDBOperations, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

    public class DynamoDBTemplate
    extends java.lang.Object
    implements DynamoDBOperations, org.springframework.context.ApplicationContextAware
    • Constructor Summary

      Constructors 
      Constructor Description
      DynamoDBTemplate​(com.amazonaws.services.dynamodbv2.AmazonDynamoDB amazonDynamoDB, com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper dynamoDBMapper, com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig dynamoDBMapperConfig)
      Initializes a new DynamoDBTemplate.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.List<com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.FailedBatch> batchDelete​(java.lang.Iterable<?> entities)  
      <T> java.util.List<T> batchLoad​(java.util.Map<java.lang.Class<?>,​java.util.List<com.amazonaws.services.dynamodbv2.datamodeling.KeyPair>> itemsToGet)  
      java.util.List<com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.FailedBatch> batchSave​(java.lang.Iterable<?> entities)  
      <T> int count​(java.lang.Class<T> domainClass, com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression<T> queryExpression)  
      <T> int count​(java.lang.Class<T> domainClass, com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBScanExpression scanExpression)  
      <T> int count​(java.lang.Class<T> clazz, com.amazonaws.services.dynamodbv2.model.QueryRequest mutableQueryRequest)  
      <T> T delete​(T entity)  
      <T> java.lang.String getOverriddenTableName​(java.lang.Class<T> domainClass, java.lang.String tableName)  
      <T> com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel<T> getTableModel​(java.lang.Class<T> domainClass)
      Provides access to the DynamoDB mapper table model of the underlying domain type.
      <T> T load​(java.lang.Class<T> domainClass, java.lang.Object hashKey)  
      <T> T load​(java.lang.Class<T> domainClass, java.lang.Object hashKey, java.lang.Object rangeKey)  
      protected <T> void maybeEmitEvent​(T source, java.util.function.Function<T,​DynamoDBMappingEvent<T>> factory)  
      <T> com.amazonaws.services.dynamodbv2.datamodeling.PaginatedQueryList<T> query​(java.lang.Class<T> domainClass, com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression<T> queryExpression)  
      <T> com.amazonaws.services.dynamodbv2.datamodeling.PaginatedQueryList<T> query​(java.lang.Class<T> clazz, com.amazonaws.services.dynamodbv2.model.QueryRequest queryRequest)  
      <T> T save​(T entity)  
      <T> com.amazonaws.services.dynamodbv2.datamodeling.PaginatedScanList<T> scan​(java.lang.Class<T> domainClass, com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBScanExpression scanExpression)  
      void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)  
      • Methods inherited from class java.lang.Object

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

      • DynamoDBTemplate

        @Autowired
        public DynamoDBTemplate​(com.amazonaws.services.dynamodbv2.AmazonDynamoDB amazonDynamoDB,
                                com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper dynamoDBMapper,
                                com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig dynamoDBMapperConfig)
        Initializes a new DynamoDBTemplate. The following combinations are valid:
        Parameters:
        amazonDynamoDB - must not be null
        dynamoDBMapperConfig - can be null - DynamoDBMapperConfig.DEFAULT is used if null is passed in
        dynamoDBMapper - can be null - DynamoDBMapper(AmazonDynamoDB, DynamoDBMapperConfig) is used if null is passed in
        dynamoDBMapperConfig -
    • Method Detail

      • setApplicationContext

        public void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)
                                   throws org.springframework.beans.BeansException
        Specified by:
        setApplicationContext in interface org.springframework.context.ApplicationContextAware
        Throws:
        org.springframework.beans.BeansException
      • count

        public <T> int count​(java.lang.Class<T> domainClass,
                             com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression<T> queryExpression)
        Specified by:
        count in interface DynamoDBOperations
      • query

        public <T> com.amazonaws.services.dynamodbv2.datamodeling.PaginatedQueryList<T> query​(java.lang.Class<T> domainClass,
                                                                                              com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression<T> queryExpression)
        Specified by:
        query in interface DynamoDBOperations
      • count

        public <T> int count​(java.lang.Class<T> domainClass,
                             com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBScanExpression scanExpression)
        Specified by:
        count in interface DynamoDBOperations
      • load

        public <T> T load​(java.lang.Class<T> domainClass,
                          java.lang.Object hashKey,
                          java.lang.Object rangeKey)
        Specified by:
        load in interface DynamoDBOperations
      • load

        public <T> T load​(java.lang.Class<T> domainClass,
                          java.lang.Object hashKey)
        Specified by:
        load in interface DynamoDBOperations
      • scan

        public <T> com.amazonaws.services.dynamodbv2.datamodeling.PaginatedScanList<T> scan​(java.lang.Class<T> domainClass,
                                                                                            com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBScanExpression scanExpression)
        Specified by:
        scan in interface DynamoDBOperations
      • batchLoad

        public <T> java.util.List<T> batchLoad​(java.util.Map<java.lang.Class<?>,​java.util.List<com.amazonaws.services.dynamodbv2.datamodeling.KeyPair>> itemsToGet)
        Specified by:
        batchLoad in interface DynamoDBOperations
      • batchSave

        public java.util.List<com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.FailedBatch> batchSave​(java.lang.Iterable<?> entities)
        Specified by:
        batchSave in interface DynamoDBOperations
      • batchDelete

        public java.util.List<com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.FailedBatch> batchDelete​(java.lang.Iterable<?> entities)
        Specified by:
        batchDelete in interface DynamoDBOperations
      • query

        public <T> com.amazonaws.services.dynamodbv2.datamodeling.PaginatedQueryList<T> query​(java.lang.Class<T> clazz,
                                                                                              com.amazonaws.services.dynamodbv2.model.QueryRequest queryRequest)
        Specified by:
        query in interface DynamoDBOperations
      • count

        public <T> int count​(java.lang.Class<T> clazz,
                             com.amazonaws.services.dynamodbv2.model.QueryRequest mutableQueryRequest)
        Specified by:
        count in interface DynamoDBOperations
      • getOverriddenTableName

        public <T> java.lang.String getOverriddenTableName​(java.lang.Class<T> domainClass,
                                                           java.lang.String tableName)
        Specified by:
        getOverriddenTableName in interface DynamoDBOperations
      • getTableModel

        public <T> com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel<T> getTableModel​(java.lang.Class<T> domainClass)
        Provides access to the DynamoDB mapper table model of the underlying domain type.
        Specified by:
        getTableModel in interface DynamoDBOperations
        Type Parameters:
        T - The type of the domain type itself
        Parameters:
        domainClass - A domain type
        Returns:
        Corresponding DynamoDB table model
      • maybeEmitEvent

        protected <T> void maybeEmitEvent​(@Nullable
                                          T source,
                                          java.util.function.Function<T,​DynamoDBMappingEvent<T>> factory)