Class AbstractDynamoDBQueryCriteria<T,​ID>

    • Field Detail

      • clazz

        protected java.lang.Class<T> clazz
      • attributeConditions

        protected org.springframework.util.MultiValueMap<java.lang.String,​com.amazonaws.services.dynamodbv2.model.Condition> attributeConditions
      • propertyConditions

        protected org.springframework.util.MultiValueMap<java.lang.String,​com.amazonaws.services.dynamodbv2.model.Condition> propertyConditions
      • hashKeyAttributeValue

        protected java.lang.Object hashKeyAttributeValue
      • hashKeyPropertyValue

        protected java.lang.Object hashKeyPropertyValue
      • globalSecondaryIndexName

        protected java.lang.String globalSecondaryIndexName
      • sort

        protected org.springframework.data.domain.Sort sort
      • projection

        protected java.util.Optional<java.lang.String> projection
      • limit

        protected java.util.Optional<java.lang.Integer> limit
    • Constructor Detail

      • AbstractDynamoDBQueryCriteria

        public AbstractDynamoDBQueryCriteria​(DynamoDBEntityInformation<T,​ID> dynamoDBEntityInformation,
                                             com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel<T> tableModel)
    • Method Detail

      • isApplicableForLoad

        public abstract boolean isApplicableForLoad()
      • buildQueryRequest

        protected com.amazonaws.services.dynamodbv2.model.QueryRequest buildQueryRequest​(java.lang.String tableName,
                                                                                         java.lang.String theIndexName,
                                                                                         java.lang.String hashKeyAttributeName,
                                                                                         java.lang.String rangeKeyAttributeName,
                                                                                         java.lang.String rangeKeyPropertyName,
                                                                                         java.util.List<com.amazonaws.services.dynamodbv2.model.Condition> hashKeyConditions,
                                                                                         java.util.List<com.amazonaws.services.dynamodbv2.model.Condition> rangeKeyConditions)
      • applySortIfSpecified

        protected void applySortIfSpecified​(com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression<T> queryExpression,
                                            java.util.List<java.lang.String> permittedPropertyNames)
      • applySortIfSpecified

        protected void applySortIfSpecified​(com.amazonaws.services.dynamodbv2.model.QueryRequest queryRequest,
                                            java.util.List<java.lang.String> permittedPropertyNames)
      • comparisonOperatorsPermittedForQuery

        public boolean comparisonOperatorsPermittedForQuery()
      • getHashKeyConditions

        protected java.util.List<com.amazonaws.services.dynamodbv2.model.Condition> getHashKeyConditions()
      • getGlobalSecondaryIndexName

        protected java.lang.String getGlobalSecondaryIndexName()
      • isHashKeyProperty

        protected boolean isHashKeyProperty​(java.lang.String propertyName)
      • getHashKeyPropertyName

        protected java.lang.String getHashKeyPropertyName()
      • getHashKeyAttributeName

        protected java.lang.String getHashKeyAttributeName()
      • hasIndexHashKeyEqualCondition

        protected boolean hasIndexHashKeyEqualCondition()
      • hasIndexRangeKeyCondition

        protected boolean hasIndexRangeKeyCondition()
      • isApplicableForGlobalSecondaryIndex

        protected boolean isApplicableForGlobalSecondaryIndex()
      • isHashKeySpecified

        public boolean isHashKeySpecified()
      • getHashKeyAttributeValue

        public java.lang.Object getHashKeyAttributeValue()
      • getHashKeyPropertyValue

        public java.lang.Object getHashKeyPropertyValue()
      • getAttributeName

        protected java.lang.String getAttributeName​(java.lang.String propertyName)
      • buildSingleEntityLoadQuery

        protected abstract Query<T> buildSingleEntityLoadQuery​(DynamoDBOperations dynamoDBOperations)
      • buildSingleEntityCountQuery

        protected abstract Query<java.lang.Long> buildSingleEntityCountQuery​(DynamoDBOperations dynamoDBOperations)
      • buildFinderCountQuery

        protected abstract Query<java.lang.Long> buildFinderCountQuery​(DynamoDBOperations dynamoDBOperations,
                                                                       boolean pageQuery)
      • isOnlyHashKeySpecified

        protected abstract boolean isOnlyHashKeySpecified()
      • withCondition

        public DynamoDBQueryCriteria<T,​ID> withCondition​(java.lang.String propertyName,
                                                               com.amazonaws.services.dynamodbv2.model.Condition condition)
      • getPropertyAttributeValue

        protected <V> java.lang.Object getPropertyAttributeValue​(java.lang.String propertyName,
                                                                 V value)
      • createNoValueCondition

        protected <V> com.amazonaws.services.dynamodbv2.model.Condition createNoValueCondition​(java.lang.String propertyName,
                                                                                               com.amazonaws.services.dynamodbv2.model.ComparisonOperator comparisonOperator)
      • addAttributeValue

        protected <P> java.util.List<com.amazonaws.services.dynamodbv2.model.AttributeValue> addAttributeValue​(java.util.List<com.amazonaws.services.dynamodbv2.model.AttributeValue> attributeValueList,
                                                                                                               @Nullable
                                                                                                               java.lang.Object attributeValue,
                                                                                                               java.lang.Class<P> propertyType,
                                                                                                               boolean expandCollectionValues)
      • createSingleValueCondition

        protected com.amazonaws.services.dynamodbv2.model.Condition createSingleValueCondition​(java.lang.String propertyName,
                                                                                               com.amazonaws.services.dynamodbv2.model.ComparisonOperator comparisonOperator,
                                                                                               java.lang.Object o,
                                                                                               java.lang.Class<?> propertyType,
                                                                                               boolean alreadyMarshalledIfRequired)
      • createCollectionCondition

        protected com.amazonaws.services.dynamodbv2.model.Condition createCollectionCondition​(java.lang.String propertyName,
                                                                                              com.amazonaws.services.dynamodbv2.model.ComparisonOperator comparisonOperator,
                                                                                              java.lang.Iterable<?> o,
                                                                                              java.lang.Class<?> propertyType)