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.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, appendPaginationAndOrder, appendUpdateSetParameter, buildBatchCreateTableStatement, buildBatchDropTableStatement, 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, resolveWhereForAnnotationMetadata
-
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 classSqlQueryBuilder2- 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
-