Class CosmosSqlQueryBuilder2
java.lang.Object
io.micronaut.data.model.query.builder.sql.AbstractSqlLikeQueryBuilder2
io.micronaut.data.model.query.builder.sql.SqlQueryBuilder2
io.micronaut.data.document.model.query.builder.CosmosSqlQueryBuilder2
- All Implemented Interfaces:
QueryBuilder2
The Azure Cosmos DB sql query builder.
- Since:
- 3.9.0
- Author:
- radovanradic
-
Nested Class Summary
Nested classes/interfaces inherited from class io.micronaut.data.model.query.builder.sql.SqlQueryBuilder2
SqlQueryBuilder2.InsertQueryDefinitionImpl, SqlQueryBuilder2.SqlSelectionVisitorNested classes/interfaces inherited from class io.micronaut.data.model.query.builder.sql.AbstractSqlLikeQueryBuilder2
AbstractSqlLikeQueryBuilder2.ExpressionAppender, AbstractSqlLikeQueryBuilder2.Placeholder, AbstractSqlLikeQueryBuilder2.QueryBuilder, AbstractSqlLikeQueryBuilder2.QueryPosition, AbstractSqlLikeQueryBuilder2.QueryPropertyPath, AbstractSqlLikeQueryBuilder2.QueryState, AbstractSqlLikeQueryBuilder2.SqlPredicateVisitorNested classes/interfaces inherited from interface io.micronaut.data.model.query.builder.QueryBuilder2
QueryBuilder2.BaseQueryDefinition, QueryBuilder2.DeleteQueryDefinition, QueryBuilder2.InsertQueryDefinition, QueryBuilder2.SelectQueryDefinition, QueryBuilder2.UpdateQueryDefinition -
Field Summary
Fields inherited from class io.micronaut.data.model.query.builder.sql.SqlQueryBuilder2
DEFAULT_POSITIONAL_PARAMETER_MARKER, SQL_SERVER_FOR_UPDATE_CLAUSE, STANDARD_FOR_UPDATE_CLAUSEFields inherited from class io.micronaut.data.model.query.builder.sql.AbstractSqlLikeQueryBuilder2
ALIAS_REPLACE_QUOTED, AND, AS_CLAUSE, CANNOT_QUERY_ON_ID_WITH_ENTITY_THAT_HAS_NO_ID, CLOSE_BRACKET, COMMA, DISTINCT, DOT, FROM_CLAUSE, LOGICAL_AND, LOGICAL_OR, NOT, OPEN_BRACKET, OR, ORDER_BY_CLAUSE, RETURNING, SELECT_CLAUSE, SPACE, WHERE_CLAUSE -
Constructor Summary
ConstructorsConstructorDescriptionCosmosSqlQueryBuilder2(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringBuilderappendDeleteClause(StringBuilder queryString) Append the delete clause.protected StringConvert the literal value to it's SQL representation.buildInsert(io.micronaut.core.annotation.AnnotationMetadata repositoryMetadata, QueryBuilder2.InsertQueryDefinition definition) Builds an insert statement for the given entity.protected voidbuildJoin(String joinType, StringBuilder query, AbstractSqlLikeQueryBuilder2.QueryState queryState, PersistentAssociationPath joinAssociation, PersistentEntity associationOwner, String currentJoinAlias, String lastJoinAlias) Build a join expression for the given alias, association, join type and builder.buildLimitAndOffset(long limit, long offset) Generate the limit and offset query.buildSelect(@NonNull io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, @NonNull QueryBuilder2.SelectQueryDefinition definition) Encode the given query for the passed annotation metadata and query.buildUpdate(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, QueryBuilder2.UpdateQueryDefinition definition) Encode the given query into the encoded query instance.protected booleanWhether property path expressions require computation by the implementation.createPredicateVisitor(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, AbstractSqlLikeQueryBuilder2.QueryState queryState) Create a predicate visitor.protected SqlQueryBuilder2.SqlSelectionVisitorcreateSelectionVisitor(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, AbstractSqlLikeQueryBuilder2.QueryState queryState, boolean distinct) Create a selection visitor.protected NamingStrategygetNamingStrategy(PersistentEntity entity) GetsNamingStrategyfor the entity.protected NamingStrategygetNamingStrategy(PersistentPropertyPath propertyPath) GetsNamingStrategyfor the property path.protected booleanisAliasForBatch(PersistentEntity persistentEntity, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata) Should aliases be used in batch statements.protected booleanMethods inherited from class io.micronaut.data.model.query.builder.sql.SqlQueryBuilder2
appendForUpdate, appendLimitAndOrder, appendUpdateSetParameter, buildBatchCreateTableStatement, buildBatchDropTableStatement, buildCreateTableStatements, buildCreateTableStatements, buildDropTableStatements, buildJoinTableInsert, formatParameter, getAliasName, getColumnName, getDialect, getTableAsKeyword, getTableName, isForeignKeyWithJoinTable, positionalParameterFormat, quote, resolveJoinType, selectAutoStrategy, shouldEscapeMethods inherited from class io.micronaut.data.model.query.builder.sql.AbstractSqlLikeQueryBuilder2
appendExpression, appendLimitAndOffset, appendOrder, appendPropertyRef, appendTransformed, asPath, asQueryPropertyPath, buildAdditionalWhereClause, buildAdditionalWhereString, buildAdditionalWhereString, buildDelete, buildOrderBy, buildPropertyByName, buildQuery, buildSelect, buildWhereClause, checkDialectSupportsJsonEntity, getAliasName, getColumnAlias, getDataTransformerReadValue, getDataTransformerWriteValue, getMappedName, getMappedName, getMappedName, getPathOnlyAliasName, getUnescapedTableName, isJsonEntity, newBindingContext, parameterInRoleModifiesLimit, parameterInRoleModifiesOrder, quote, resolveWhereForAnnotationMetadata, shouldAppendOrder, supportsLimitQuery
-
Constructor Details
-
CosmosSqlQueryBuilder2
@Creator public CosmosSqlQueryBuilder2(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
-
-
Method Details
-
asLiteral
Description copied from class:AbstractSqlLikeQueryBuilder2Convert the literal value to it's SQL representation.- Overrides:
asLiteralin classSqlQueryBuilder2- Parameters:
value- The literal value- Returns:
- converter value
-
traverseEmbedded
protected boolean traverseEmbedded()- Overrides:
traverseEmbeddedin classAbstractSqlLikeQueryBuilder2- Returns:
- True if embedded properties should be traversed
-
createSelectionVisitor
protected SqlQueryBuilder2.SqlSelectionVisitor createSelectionVisitor(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, AbstractSqlLikeQueryBuilder2.QueryState queryState, boolean distinct) Description copied from class:AbstractSqlLikeQueryBuilder2Create a selection visitor.- Overrides:
createSelectionVisitorin classSqlQueryBuilder2- Parameters:
annotationMetadata- The annotation metadataqueryState- The query statedistinct- The distinct- Returns:
- The visitor
-
createPredicateVisitor
protected AbstractSqlLikeQueryBuilder2.SqlPredicateVisitor createPredicateVisitor(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, AbstractSqlLikeQueryBuilder2.QueryState queryState) Description copied from class:AbstractSqlLikeQueryBuilder2Create a predicate visitor.- Overrides:
createPredicateVisitorin classAbstractSqlLikeQueryBuilder2- Parameters:
annotationMetadata- The annotation metadataqueryState- The query state- Returns:
- The visitor
-
getNamingStrategy
Description copied from class:AbstractSqlLikeQueryBuilder2GetsNamingStrategyfor the entity. Subclasses might override and potentially provide different strategy in some cases.- Overrides:
getNamingStrategyin classAbstractSqlLikeQueryBuilder2- Parameters:
entity- the persistent entity- Returns:
- naming strategy for the entity
-
getNamingStrategy
Description copied from class:AbstractSqlLikeQueryBuilder2GetsNamingStrategyfor the property path. Subclasses might override and potentially provide different strategy in some cases.- Overrides:
getNamingStrategyin classAbstractSqlLikeQueryBuilder2- Parameters:
propertyPath- the property path representation- Returns:
- naming strategy for the property path
-
buildSelect
public QueryResult buildSelect(@NonNull @NonNull io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, @NonNull @NonNull QueryBuilder2.SelectQueryDefinition definition) Description copied from interface:QueryBuilder2Encode the given query for the passed annotation metadata and query.- Specified by:
buildSelectin interfaceQueryBuilder2- Overrides:
buildSelectin classAbstractSqlLikeQueryBuilder2- Parameters:
annotationMetadata- The annotation metadatadefinition- The query model- Returns:
- The query result
-
buildJoin
protected void buildJoin(String joinType, StringBuilder query, AbstractSqlLikeQueryBuilder2.QueryState queryState, PersistentAssociationPath joinAssociation, PersistentEntity associationOwner, String currentJoinAlias, String lastJoinAlias) Description copied from class:AbstractSqlLikeQueryBuilder2Build a join expression for the given alias, association, join type and builder.- Overrides:
buildJoinin classSqlQueryBuilder2- Parameters:
joinType- The join typequery- The query builderqueryState- The statejoinAssociation- The associationassociationOwner- The associated ownercurrentJoinAlias- The current join aliaslastJoinAlias- The last join alias
-
appendDeleteClause
Description copied from class:AbstractSqlLikeQueryBuilder2Append the delete clause.- Overrides:
appendDeleteClausein classAbstractSqlLikeQueryBuilder2- Parameters:
queryString- The query string- Returns:
- The delete clause
-
isAliasForBatch
protected boolean isAliasForBatch(PersistentEntity persistentEntity, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata) Description copied from class:AbstractSqlLikeQueryBuilder2Should aliases be used in batch statements.- Overrides:
isAliasForBatchin classSqlQueryBuilder2- Parameters:
persistentEntity- the persistent entityannotationMetadata- the method annotation metadata- Returns:
- True if they should
-
computePropertyPaths
protected boolean computePropertyPaths()Description copied from class:AbstractSqlLikeQueryBuilder2Whether property path expressions require computation by the implementation. In a certain query dialects property paths are supported (such as JPA-QL where you can do select foo.bar) whilst for explicit SQL queries paths like this have to be computed into aliases / column name references.- Overrides:
computePropertyPathsin classSqlQueryBuilder2- Returns:
- True if property path computation is required.
-
buildInsert
public QueryResult buildInsert(io.micronaut.core.annotation.AnnotationMetadata repositoryMetadata, QueryBuilder2.InsertQueryDefinition definition) Description copied from interface:QueryBuilder2Builds an insert statement for the given entity.- Specified by:
buildInsertin interfaceQueryBuilder2- Overrides:
buildInsertin classSqlQueryBuilder2- Parameters:
repositoryMetadata- The repository annotation metadatadefinition- The definition- Returns:
- The insert statement or null if the implementation doesn't require insert statements
-
buildUpdate
public QueryResult buildUpdate(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, QueryBuilder2.UpdateQueryDefinition definition) Description copied from interface:QueryBuilder2Encode the given query into the encoded query instance.- Specified by:
buildUpdatein interfaceQueryBuilder2- Overrides:
buildUpdatein classAbstractSqlLikeQueryBuilder2- Parameters:
annotationMetadata- The annotation metadatadefinition- The definition- Returns:
- The encoded query
-
buildLimitAndOffset
Description copied from interface:QueryBuilder2Generate the limit and offset query.- Specified by:
buildLimitAndOffsetin interfaceQueryBuilder2- Overrides:
buildLimitAndOffsetin classAbstractSqlLikeQueryBuilder2- Parameters:
limit- The limit (-1 of not set)offset- The offset (0 if not set)- Returns:
- The encoded query
-