Package io.inversion.dynamodb
Class DynamoDbQuery
- java.lang.Object
-
- io.inversion.query.Builder<T,T>
-
- io.inversion.query.Query<DynamoDbQuery,DynamoDb,io.inversion.query.Select<io.inversion.query.Select<io.inversion.query.Select,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.From<io.inversion.query.From<io.inversion.query.From,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Where<io.inversion.query.Where<io.inversion.query.Where,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Group<io.inversion.query.Group<io.inversion.query.Group,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Order<io.inversion.query.Order<io.inversion.query.Order,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Page<io.inversion.query.Page<io.inversion.query.Page,DynamoDbQuery>,DynamoDbQuery>>
-
- io.inversion.dynamodb.DynamoDbQuery
-
public class DynamoDbQuery extends io.inversion.query.Query<DynamoDbQuery,DynamoDb,io.inversion.query.Select<io.inversion.query.Select<io.inversion.query.Select,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.From<io.inversion.query.From<io.inversion.query.From,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Where<io.inversion.query.Where<io.inversion.query.Where,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Group<io.inversion.query.Group<io.inversion.query.Group,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Order<io.inversion.query.Order<io.inversion.query.Order,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Page<io.inversion.query.Page<io.inversion.query.Page,DynamoDbQuery>,DynamoDbQuery>>
IMPLEMENTATION NOTE: Helpful DynamoDb Links- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html
- https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html
- https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryingJavaDocumentAPI.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#FilteringResults
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeNames.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.KeyConditions.html
- https://stackoverflow.com/questions/34349135/how-do-you-query-for-a-non-existent-null-attribute-in-dynamodb
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.QueryFilter.html
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.Map<java.lang.String,java.lang.String>FUNCTION_MAPstatic java.util.Map<java.lang.String,java.lang.String>OPERATOR_MAP
-
Constructor Summary
Constructors Constructor Description DynamoDbQuery()DynamoDbQuery(DynamoDb db, io.inversion.Collection table, java.util.List<io.inversion.rql.Term> terms)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanaddTerm(java.lang.String token, io.inversion.rql.Term term)protected java.util.List<io.inversion.rql.Term>after(io.inversion.Index index, java.util.Map<java.lang.String,com.amazonaws.services.dynamodbv2.model.AttributeValue> attrs)protected io.inversion.IndexcalcIndex()protected io.inversion.query.WherecreateWhere()io.inversion.ResultsdoSelect()protected io.inversion.ResultsdoSelect0()protected io.inversion.ResultsdoSelect1()com.amazonaws.services.dynamodbv2.document.TablegetDynamoTable()io.inversion.rql.TermgetPartKey()Finds the primary or a secondary index to use based on what parameters were passed in.java.lang.ObjectgetSelectSpec()io.inversion.rql.TermgetSortKey()protected java.lang.ObjectgetValue(com.amazonaws.services.dynamodbv2.model.AttributeValue v)DynamoDbQuerywithDynamoTable(com.amazonaws.services.dynamodbv2.document.Table dynamoTable)-
Methods inherited from class io.inversion.query.Query
clearValues, createFrom, createGroup, createOrder, createPage, createSelect, getBuilders, getCollection, getColValue, getColValueKeys, getColValues, getDb, getFrom, getGroup, getNumValues, getOrder, getOriginalValues, getPage, getSelect, getValues, getWhere, isDryRun, withCollection, withColValue, withDb, withDryRun, withTerm
-
-
-
-
Constructor Detail
-
DynamoDbQuery
public DynamoDbQuery()
-
DynamoDbQuery
public DynamoDbQuery(DynamoDb db, io.inversion.Collection table, java.util.List<io.inversion.rql.Term> terms)
-
-
Method Detail
-
createWhere
protected io.inversion.query.Where createWhere()
- Overrides:
createWherein classio.inversion.query.Query<DynamoDbQuery,DynamoDb,io.inversion.query.Select<io.inversion.query.Select<io.inversion.query.Select,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.From<io.inversion.query.From<io.inversion.query.From,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Where<io.inversion.query.Where<io.inversion.query.Where,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Group<io.inversion.query.Group<io.inversion.query.Group,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Order<io.inversion.query.Order<io.inversion.query.Order,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Page<io.inversion.query.Page<io.inversion.query.Page,DynamoDbQuery>,DynamoDbQuery>>
-
addTerm
protected boolean addTerm(java.lang.String token, io.inversion.rql.Term term)- Overrides:
addTermin classio.inversion.query.Builder<DynamoDbQuery,DynamoDbQuery>
-
getDynamoTable
public com.amazonaws.services.dynamodbv2.document.Table getDynamoTable()
-
withDynamoTable
public DynamoDbQuery withDynamoTable(com.amazonaws.services.dynamodbv2.document.Table dynamoTable)
-
doSelect
public io.inversion.Results doSelect() throws io.inversion.ApiException- Overrides:
doSelectin classio.inversion.query.Query<DynamoDbQuery,DynamoDb,io.inversion.query.Select<io.inversion.query.Select<io.inversion.query.Select,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.From<io.inversion.query.From<io.inversion.query.From,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Where<io.inversion.query.Where<io.inversion.query.Where,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Group<io.inversion.query.Group<io.inversion.query.Group,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Order<io.inversion.query.Order<io.inversion.query.Order,DynamoDbQuery>,DynamoDbQuery>,io.inversion.query.Page<io.inversion.query.Page<io.inversion.query.Page,DynamoDbQuery>,DynamoDbQuery>>- Throws:
io.inversion.ApiException
-
doSelect0
protected io.inversion.Results doSelect0() throws java.lang.Exception- Throws:
java.lang.Exception
-
doSelect1
protected io.inversion.Results doSelect1() throws java.lang.Exception- Throws:
java.lang.Exception
-
after
protected java.util.List<io.inversion.rql.Term> after(io.inversion.Index index, java.util.Map<java.lang.String,com.amazonaws.services.dynamodbv2.model.AttributeValue> attrs)
-
getValue
protected java.lang.Object getValue(com.amazonaws.services.dynamodbv2.model.AttributeValue v)
-
calcIndex
protected io.inversion.Index calcIndex()
- Returns:
- the best fit index to use for the query based on the params supplied
-
getPartKey
public io.inversion.rql.Term getPartKey()
Finds the primary or a secondary index to use based on what parameters were passed in.- Returns:
- a term referencing the partition key column
- See Also:
calcIndex()
-
getSortKey
public io.inversion.rql.Term getSortKey()
-
getSelectSpec
public java.lang.Object getSelectSpec()
-
-