Package io.jmix.dynmodel.impl.db
Class DynamicEntitySqlQueryBuilder
java.lang.Object
io.jmix.dynmodel.impl.db.DynamicEntitySqlQueryBuilder
@Component("dynmod_DynamicEntitySqlQueryBuilder")
public class DynamicEntitySqlQueryBuilder
extends Object
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected static final recordprotected static classprotected static final recordstatic final recordprotected static enum -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected CorePropertiesprotected DynamicModelDbSupportResolverprotected DynamicModelToolsprotected static final Stringprotected Metadataprotected MetadataToolsprotected QueryParamValuesManagerprotected ReferenceToEntitySupportprotected static final Stringprotected StaticEntityKeyDescriptorSupport -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected @Nullable Conditionprotected voidaddSortExpressions(MetaClass rootMetaClass, String propertyPath, Sort.Direction direction, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext, List<DynamicEntitySqlQueryBuilder.SortExpression> sortExpressions, int depth) protected voidaddStableOrderIfNeeded(List<DynamicEntitySqlQueryBuilder.SortExpression> sortExpressions, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext, boolean pagingRequested) buildCountQuery(LoadContext<?> context) protected StringbuildInClause(int size) buildListQuery(LoadContext<?> context) protected StringbuildLogicalWhere(LogicalCondition logicalCondition, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) buildPathExpression(MetaClass rootMetaClass, String propertyPath, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) protected StringbuildPropertyWhere(PropertyCondition propertyCondition, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) protected StringbuildSelectSql(String selection, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext, String where, List<DynamicEntitySqlQueryBuilder.SortExpression> sortExpressions) protected List<DynamicEntitySqlQueryBuilder.SortExpression> buildSortExpressions(LoadContext.Query query, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) protected StringbuildWhere(@Nullable Condition condition, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) protected @Nullable ObjectconvertToDbValue(@Nullable Object value, MetaProperty property) protected StringescapeLikeParameter(String value) protected @Nullable ObjectgetConditionParameterValue(PropertyCondition propertyCondition, MetaProperty property, LoadContext.Query query) protected Collection<MetaProperty> getInstanceNameProperties(MetaClass metaClass) protected LoadContext.QuerygetQuery(LoadContext<?> context) protected StringgetReferenceColumn(MetaProperty referenceProperty, DynamicEntitySqlQueryBuilder.StorageKind storageKind) protected StringgetRootIdColumn(MetaClass metaClass) protected StringgetSimplePrimaryKeyColumn(MetaClass metaClass) protected StringgetSimpleSideTableKeyColumn(MetaClass metaClass) protected StringgetStaticTableName(MetaClass metaClass) protected StringgetTerminalColumn(MetaProperty property, DynamicEntitySqlQueryBuilder.StorageKind storageKind) protected StringgetUnarySqlOperation(PropertyCondition propertyCondition, LoadContext.Query query) protected booleanisLikeOperation(PropertyCondition propertyCondition) protected booleanprotected voidmoveByReference(DynamicEntitySqlQueryBuilder.PathBuildState state, MetaProperty referenceProperty, MetaProperty nextProperty, String propertyPath, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) protected Collection<?> toCollection(@Nullable Object parameterValue) protected IllegalStateExceptionunsupportedPath(String propertyPath, String segmentName) protected voidvalidatePath(List<MetaProperty> properties, String propertyPath)
-
Field Details
-
ROOT_ALIAS
- See Also:
-
LIKE_ESCAPE
- See Also:
-
metadata
-
metadataTools
-
dynamicModelTools
-
dbSupportResolver
-
staticEntityKeyDescriptorSupport
-
referenceToEntitySupport
-
coreProperties
-
queryParamValuesManager
-
-
Constructor Details
-
DynamicEntitySqlQueryBuilder
public DynamicEntitySqlQueryBuilder()
-
-
Method Details
-
buildListQuery
-
buildCountQuery
-
getQuery
-
actualizeCondition
-
buildWhere
protected String buildWhere(@Nullable Condition condition, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) -
buildLogicalWhere
protected String buildLogicalWhere(LogicalCondition logicalCondition, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) -
buildPropertyWhere
protected String buildPropertyWhere(PropertyCondition propertyCondition, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) -
getUnarySqlOperation
-
getConditionParameterValue
protected @Nullable Object getConditionParameterValue(PropertyCondition propertyCondition, MetaProperty property, LoadContext.Query query) -
escapeLikeParameter
-
isLikeOperation
-
buildSortExpressions
protected List<DynamicEntitySqlQueryBuilder.SortExpression> buildSortExpressions(LoadContext.Query query, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) -
addSortExpressions
protected void addSortExpressions(MetaClass rootMetaClass, String propertyPath, Sort.Direction direction, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext, List<DynamicEntitySqlQueryBuilder.SortExpression> sortExpressions, int depth) -
getInstanceNameProperties
-
addStableOrderIfNeeded
protected void addStableOrderIfNeeded(List<DynamicEntitySqlQueryBuilder.SortExpression> sortExpressions, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext, boolean pagingRequested) -
isPagingRequested
-
buildSelectSql
protected String buildSelectSql(String selection, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext, String where, List<DynamicEntitySqlQueryBuilder.SortExpression> sortExpressions) -
buildPathExpression
protected DynamicEntitySqlQueryBuilder.PathExpression buildPathExpression(MetaClass rootMetaClass, String propertyPath, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) -
validatePath
-
moveByReference
protected void moveByReference(DynamicEntitySqlQueryBuilder.PathBuildState state, MetaProperty referenceProperty, MetaProperty nextProperty, String propertyPath, DynamicEntitySqlQueryBuilder.QueryBuildContext buildContext) -
getTerminalColumn
protected String getTerminalColumn(MetaProperty property, DynamicEntitySqlQueryBuilder.StorageKind storageKind) -
getReferenceColumn
protected String getReferenceColumn(MetaProperty referenceProperty, DynamicEntitySqlQueryBuilder.StorageKind storageKind) -
getStaticTableName
-
getRootIdColumn
-
getSimplePrimaryKeyColumn
-
getSimpleSideTableKeyColumn
-
convertToDbValue
-
toCollection
-
buildInClause
-
unsupportedPath
-