Package org.nuiton.topia.persistence
Class HqlAndParametersBuilder<E extends TopiaEntity>
java.lang.Object
org.nuiton.topia.persistence.HqlAndParametersBuilder<E>
A builder to create syntactically correct HQL and associated parameters given properties or after various constraint
adds.
It may be used in a Dao to ease dynamic construction of queries.
- Since:
- 3.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.google.common.base.Joinerprotected LinkedHashSet<String>protected String -
Constructor Summary
ConstructorsConstructorDescriptionHqlAndParametersBuilder(Class<E> entityClass) HqlAndParametersBuilder(Class<E> entityClass, String alias) HqlAndParametersBuilder(Class<E> entityClass, String alias, FilterRuleGroupOperator filterRuleGroupOperator) HqlAndParametersBuilder(Class<E> entityClass, FilterRuleGroupOperator filterRuleGroupOperator) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAllFetches(String property, String... otherProperties) voidaddAllFetches(Collection<String> properties) voidaddCollectionIsEmpty(String property) voidaddCollectionIsNotEmpty(String property) voidaddContains(String property, Object value) voidvoidvoidaddGreaterOrEquals(String property, Number number) voidaddGreaterOrEquals(String property, String string) voidaddGreaterOrEquals(String property, LocalDate localDate) voidaddGreaterOrEquals(String property, LocalDateTime localDateTime) voidaddGreaterOrEquals(String property, Date date) voidaddGreaterThan(String property, Number number) voidaddGreaterThan(String property, String string) voidaddGreaterThan(String property, LocalDate localDate) voidaddGreaterThan(String property, LocalDateTime localDateTime) voidaddGreaterThan(String property, Date date) <T extends Comparable<T>>
void<T extends Comparable<T>>
voidvoidaddIn(String property, Collection<?> values) <T extends Comparable<T>>
void<T extends Comparable<T>>
voidprotected voidaddInOrNotIn(String property, Collection<?> values, boolean in) voidvoidaddLowerOrEquals(String property, Number number) voidaddLowerOrEquals(String property, String string) voidaddLowerOrEquals(String property, LocalDate localDate) voidaddLowerOrEquals(String property, LocalDateTime localDateTime) voidaddLowerOrEquals(String property, Date date) voidaddLowerThan(String property, Number number) voidaddLowerThan(String property, String string) voidaddLowerThan(String property, LocalDate localDate) voidaddLowerThan(String property, LocalDateTime localDateTime) voidaddLowerThan(String property, Date date) voidaddNotContains(String property, Object value) voidaddNotEquals(String property, Object value) <T extends Comparable<T>>
voidvoidaddNotIn(String property, Collection<?> values) <T extends Comparable<T>>
voidvoidaddNotLike(String property, String pattern) voidaddNotNull(String property) voidvoidaddTopiaIdEquals(String property, String topiaId) voidaddTopiaIdIn(String property, Collection<String> topiaIds) voidaddTopiaIdNotEquals(String property, String topiaId) voidaddTopiaIdNotIn(String property, Collection<String> topiaIds) voidaddWhereClause(String whereClause) voidaddWhereClause(String whereClause, Map<String, Object> hqlParameters) protected voiddoAddGreaterOrEquals(String property, Object value) protected voiddoAddGreaterThan(String property, Object value) protected voiddoAddLowerOrEquals(String property, Object value) protected voiddoAddLowerThan(String property, Object value) getAlias()getHql()protected StringgetHqlFromClause(boolean includeFetch) getHqlSelectClause(boolean includeFetch) protected StringgetParameterName(String propertyName) Converts a (nested) property name to an HQL argument name.booleanbooleanprotected StringputHqlParameterWithAvailableName(String propertyName, Object value) Add a parameter in the parameters map searching with the suitable parameter name in order to prevent conflicts.voidsetOrderByArguments(String... orderByArguments) voidsetOrderByArguments(Collection<org.nuiton.util.pagination.PaginationOrder> paginationOrders) voidsetOrderByArguments(LinkedHashSet<String> orderByArguments) voidsetParameters(Map<String, Object> parameters) voidsetSelectClause(String selectClause) voidsetWhereClauses(Set<String> whereClauses) toString()
-
Field Details
-
hqlClausesJoiner
protected com.google.common.base.Joiner hqlClausesJoiner -
entityClass
-
selectClause
-
whereClauses
-
orderByArguments
-
parameters
-
fetchProperties
-
-
Constructor Details
-
HqlAndParametersBuilder
-
HqlAndParametersBuilder
-
HqlAndParametersBuilder
public HqlAndParametersBuilder(Class<E> entityClass, FilterRuleGroupOperator filterRuleGroupOperator) -
HqlAndParametersBuilder
public HqlAndParametersBuilder(Class<E> entityClass, String alias, FilterRuleGroupOperator filterRuleGroupOperator)
-
-
Method Details
-
getAlias
-
getFilterRuleGroupOperator
-
getHqlSelectClause
-
setSelectClause
-
addNull
-
addNotNull
-
addEquals
-
addNotEquals
-
addIn
-
addNotIn
-
addIn
public <T extends Comparable<T>> void addIn(String property, org.apache.commons.lang3.Range<T> range) -
addNotIn
public <T extends Comparable<T>> void addNotIn(String property, org.apache.commons.lang3.Range<T> range) -
addIn
public <T extends Comparable<T>> void addIn(String property, org.apache.commons.lang3.Range<T> range, boolean in) -
addIn
public <T extends Comparable<T>> void addIn(String property, com.google.common.collect.Range<T> range) -
addNotIn
public <T extends Comparable<T>> void addNotIn(String property, com.google.common.collect.Range<T> range) -
addIn
public <T extends Comparable<T>> void addIn(String property, com.google.common.collect.Range<T> range, boolean in) -
addInOrNotIn
- Parameters:
property- FIXMEvalues- FIXMEin- true if property value must be in given collection, false if value must not be in given collection
-
addTopiaIdEquals
- Parameters:
property- FIXMEtopiaId- FIXME- See Also:
-
addTopiaIdIn
- Parameters:
property- FIXMEtopiaIds- FIXME- See Also:
-
addTopiaIdNotEquals
- Parameters:
property- FIXMEtopiaId- FIXME- See Also:
-
addTopiaIdNotIn
- Parameters:
property- FIXMEtopiaIds- FIXME- See Also:
-
addContains
-
addNotContains
-
addLike
-
addNotLike
-
addLowerThan
-
addLowerOrEquals
-
addGreaterThan
-
addGreaterOrEquals
-
addLowerThan
-
addLowerOrEquals
-
addGreaterThan
-
addGreaterOrEquals
-
addLowerThan
-
addLowerOrEquals
-
addGreaterThan
-
addGreaterOrEquals
-
addLowerThan
-
addLowerOrEquals
-
addGreaterThan
-
addGreaterOrEquals
-
addLowerThan
-
addLowerOrEquals
-
addGreaterThan
-
addGreaterOrEquals
-
doAddLowerThan
-
doAddLowerOrEquals
-
doAddGreaterThan
-
doAddGreaterOrEquals
-
addWhereClause
-
addCollectionIsEmpty
-
addCollectionIsNotEmpty
-
addWhereClause
-
setWhereClauses
-
getWhereClauses
-
setParameters
-
setOrderByArguments
-
setOrderByArguments
-
setOrderByArguments
public void setOrderByArguments(Collection<org.nuiton.util.pagination.PaginationOrder> paginationOrders) -
addAllFetches
-
addAllFetches
-
addFetch
-
hasFetchProperties
public boolean hasFetchProperties() -
getHqlFromClause
-
getHqlWhereClause
-
getHqlOrderByClause
-
getHql
-
getHqlForFetchStep1
-
getHqlForFetchStep2
-
getParameterName
Converts a (nested) property name to an HQL argument name. For example getParameterName("yearlyDeclaration.survey.topiaId") → "yearlyDeclarationSurveyTopiaId"- Parameters:
propertyName- the name of a property, can be a path to a nested property- Returns:
- a string that can syntactically be used as an HQL parameter name, not prefixed by ':'
-
putHqlParameterWithAvailableName
Add a parameter in the parameters map searching with the suitable parameter name in order to prevent conflicts.- Parameters:
propertyName- FIXMEvalue- FIXME- Returns:
- the found key where the parameter has been added, suitable to use in the where clause
-
getHqlParameters
-
isOrderByClausePresent
public boolean isOrderByClausePresent() -
toString
-