Package io.jmix.data.impl.jpql.generator
Class PropertyConditionGenerator
java.lang.Object
io.jmix.data.impl.jpql.generator.PropertyConditionGenerator
- All Implemented Interfaces:
ConditionGenerator<PropertyCondition>
- Direct Known Subclasses:
DynAttrPropertyConditionGenerator,DynModelPropertyConditionGenerator,KeyValuePropertyConditionGenerator
@Component("data_PropertyConditionGenerator")
@Order(1000)
public class PropertyConditionGenerator
extends Object
implements ConditionGenerator<PropertyCondition>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DataPropertiesprotected @Nullable InIntervalParametersResolverprotected Stringprotected Metadataprotected MetadataToolsprotected boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongenerateJoin(ConditionGenerationContext context) Returns a JPQL 'join' clause modified according to the given context.@Nullable ObjectgenerateParameterValue(@Nullable Condition condition, @Nullable Object parameterValue, @Nullable String entityName) Returns a parameter value modified according to the given condition.protected StringgenerateWhere(PropertyCondition propertyCondition, String entityAlias, @Nullable String property, boolean isElementCollection) generateWhere(ConditionGenerationContext context) Returns a JPQL 'where' clause modified according to the given context.protected StringgetLikeEscapeClause(PropertyCondition propertyCondition) Returns a trailingESCAPEclause forLIKE-based operations so that_and%produced byQueryUtils.escapeForLike(String)are recognised as literals by the database.protected StringgetProperty(String property, @Nullable String entityName) protected booleanisCrossDataStoreReference(String property, @Nullable String entityName) protected booleanisNegativeComparison(String operation) processParameters(Map<String, Object> parameters, Map<String, Object> queryParameters, PropertyCondition condition, @Nullable String entityName) Returns parameters modified according to the given condition.voidsetDataProperties(DataProperties dataProperties) voidsetInIntervalResolver(InIntervalParametersResolver inIntervalResolver) booleansupports(ConditionGenerationContext context) Checks whether the condition generator supports the givencontext.
-
Field Details
-
metadataTools
-
metadata
-
dataProperties
-
inIntervalResolver
-
useInnerJoinInCondition
@Value("${jmix.eclipselink.use-inner-join-in-condition:false}") protected boolean useInnerJoinInCondition -
joinAliasPrefix
-
-
Constructor Details
-
PropertyConditionGenerator
-
-
Method Details
-
setDataProperties
-
setInIntervalResolver
@Autowired(required=false) public void setInIntervalResolver(InIntervalParametersResolver inIntervalResolver) -
supports
Description copied from interface:ConditionGeneratorChecks whether the condition generator supports the givencontext.- Specified by:
supportsin interfaceConditionGenerator<PropertyCondition>- Parameters:
context- condition generation context- Returns:
- true if the condition generator supports the given context, or false otherwise
-
generateJoin
Description copied from interface:ConditionGeneratorReturns a JPQL 'join' clause modified according to the given context.- Specified by:
generateJoinin interfaceConditionGenerator<PropertyCondition>- Parameters:
context- condition generation context- Returns:
- a JPQL 'join' clause modified according to the given context
-
generateWhere
Description copied from interface:ConditionGeneratorReturns a JPQL 'where' clause modified according to the given context.- Specified by:
generateWherein interfaceConditionGenerator<PropertyCondition>- Parameters:
context- condition generation context- Returns:
- a JPQL 'where' clause modified according to the given context
-
processParameters
public Map<String,Object> processParameters(Map<String, Object> parameters, Map<String, Object> queryParameters, PropertyCondition condition, @Nullable String entityName) Description copied from interface:ConditionGeneratorReturns parameters modified according to the given condition.- Specified by:
processParametersin interfaceConditionGenerator<PropertyCondition>- Parameters:
parameters- result parametersqueryParameters- query parameterscondition- the condition- Returns:
- modified parameters
-
generateParameterValue
public @Nullable Object generateParameterValue(@Nullable Condition condition, @Nullable Object parameterValue, @Nullable String entityName) Description copied from interface:ConditionGeneratorReturns a parameter value modified according to the given condition.- Specified by:
generateParameterValuein interfaceConditionGenerator<PropertyCondition>- Parameters:
condition- a conditionparameterValue- parameter valueentityName- entity name- Returns:
- a modified parameter value
-
generateWhere
protected String generateWhere(PropertyCondition propertyCondition, String entityAlias, @Nullable String property, boolean isElementCollection) -
getLikeEscapeClause
Returns a trailingESCAPEclause forLIKE-based operations so that_and%produced byQueryUtils.escapeForLike(String)are recognised as literals by the database. Empty for non-LIKEoperations. -
getProperty
-
isCrossDataStoreReference
-
isNegativeComparison
-