branch develop updated (c8a77aaa -> 2bb7e9a4)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git from c8a77aaa Allow passing java8 date and time as HQL arguments new d53bfda9 Delete deprecated API new 2bb7e9a4 Allow using OR instead of AND when building a query The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 2bb7e9a4e975b8674bd0978806460b8e899420ba Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Jul 4 17:55:49 2019 +0200 Allow using OR instead of AND when building a query commit d53bfda968fba7a30d37488ca16c785a73d3fbe7 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Jul 4 17:20:02 2019 +0200 Delete deprecated API Summary of changes: .../topia/persistence/HqlAndParametersBuilder.java | 29 +++++++++++++--------- .../org/nuiton/topia/persistence/TopiaDao.java | 11 +++++++- .../persistence/internal/AbstractTopiaDao.java | 16 +++++++++--- 3 files changed, 40 insertions(+), 16 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git commit d53bfda968fba7a30d37488ca16c785a73d3fbe7 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Jul 4 17:20:02 2019 +0200 Delete deprecated API --- .../topia/persistence/HqlAndParametersBuilder.java | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java index af8de204..0278ba66 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java @@ -60,6 +60,8 @@ import java.util.Set; */ public class HqlAndParametersBuilder<E extends TopiaEntity> { + private static final String DEFAULT_ALIAS = "topiaEntity_"; + protected Joiner hqlClausesJoiner = Joiner.on(' ').skipNulls(); protected Class<E> entityClass; @@ -68,7 +70,7 @@ public class HqlAndParametersBuilder<E extends TopiaEntity> { protected Set<String> whereClauses = Sets.newLinkedHashSet(); - protected String alias = "topiaEntity_"; + private final String alias; protected LinkedHashSet<String> orderByArguments; @@ -78,7 +80,7 @@ public class HqlAndParametersBuilder<E extends TopiaEntity> { protected Set<String> fetchProperties = Sets.newLinkedHashSet(); public HqlAndParametersBuilder(Class<E> entityClass) { - this.entityClass = entityClass; + this(entityClass, DEFAULT_ALIAS); } public HqlAndParametersBuilder(Class<E> entityClass, String alias) { @@ -87,16 +89,6 @@ public class HqlAndParametersBuilder<E extends TopiaEntity> { this.alias = alias; } - /** - * @param alias FIXME - * @deprecated use constructor, alias should not be changed - */ - @Deprecated - public void setAlias(String alias) { - Preconditions.checkArgument(StringUtils.isNotEmpty(alias)); - this.alias = alias; - } - public String getAlias() { return alias; } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git commit 2bb7e9a4e975b8674bd0978806460b8e899420ba Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Jul 4 17:55:49 2019 +0200 Allow using OR instead of AND when building a query --- .../topia/persistence/HqlAndParametersBuilder.java | 17 +++++++++++++++-- .../java/org/nuiton/topia/persistence/TopiaDao.java | 11 ++++++++++- .../topia/persistence/internal/AbstractTopiaDao.java | 16 +++++++++++++--- 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java index 0278ba66..3a0a1b1b 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java @@ -38,6 +38,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.text.WordUtils; +import org.nuiton.topia.persistence.pager.FilterRuleGroupOperator; import org.nuiton.util.pagination.PaginationOrder; import java.time.LocalDate; @@ -79,20 +80,31 @@ public class HqlAndParametersBuilder<E extends TopiaEntity> { // List of properties that must be loaded in a single query protected Set<String> fetchProperties = Sets.newLinkedHashSet(); + private final FilterRuleGroupOperator filterRuleGroupOperator; + public HqlAndParametersBuilder(Class<E> entityClass) { - this(entityClass, DEFAULT_ALIAS); + this(entityClass, DEFAULT_ALIAS, FilterRuleGroupOperator.AND); } public HqlAndParametersBuilder(Class<E> entityClass, String alias) { + this(entityClass, alias, FilterRuleGroupOperator.AND); + } + + public HqlAndParametersBuilder(Class<E> entityClass, String alias, FilterRuleGroupOperator filterRuleGroupOperator) { Preconditions.checkArgument(StringUtils.isNotEmpty(alias)); this.entityClass = entityClass; this.alias = alias; + this.filterRuleGroupOperator = filterRuleGroupOperator; } public String getAlias() { return alias; } + public FilterRuleGroupOperator getFilterRuleGroupOperator() { + return filterRuleGroupOperator; + } + public String getHqlSelectClause(boolean includeFetch) { String result = selectClause; if (includeFetch && !CollectionUtils.isEmpty(fetchProperties)) { @@ -581,7 +593,8 @@ public class HqlAndParametersBuilder<E extends TopiaEntity> { String whereClause = Iterables.getOnlyElement(whereClauses); hqlWhereClause = "where " + whereClause; } else { - hqlWhereClause = "where (" + StringUtils.join(whereClauses, ") and (") + ")"; + String hqlOperator = filterRuleGroupOperator == FilterRuleGroupOperator.AND ? "and" : "or"; + hqlWhereClause = "where (" + StringUtils.join(whereClauses, ") " + hqlOperator + " (") + ")"; } return hqlWhereClause; } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDao.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDao.java index 736cec71..ae13b1f0 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDao.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDao.java @@ -27,6 +27,7 @@ package org.nuiton.topia.persistence; import com.google.common.base.Optional; import org.nuiton.topia.persistence.event.TopiaEntityListener; import org.nuiton.topia.persistence.event.TopiaEntityVetoable; +import org.nuiton.topia.persistence.pager.FilterRuleGroupOperator; import org.nuiton.util.pagination.PaginationResult; import java.util.Collection; @@ -251,7 +252,15 @@ public interface TopiaDao<E extends TopiaEntity> extends Iterable<E> { * @return FIXME * @since 3.0 */ - TopiaQueryBuilderAddCriteriaStep<E> newQueryBuilder(); + default TopiaQueryBuilderAddCriteriaStep<E> newQueryBuilder() { + return newQueryBuilder(FilterRuleGroupOperator.AND); + } + + /** + * @return FIXME + * @since 3.0 + */ + TopiaQueryBuilderAddCriteriaStep<E> newQueryBuilder(FilterRuleGroupOperator filterRuleGroupOperator); /** * @param propertyName FIXME diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java index cf52297c..6a77eb7a 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java @@ -56,6 +56,7 @@ import org.nuiton.topia.persistence.event.TopiaEntityListener; import org.nuiton.topia.persistence.event.TopiaEntityVetoable; import org.nuiton.topia.persistence.internal.support.TopiaFiresSupport; import org.nuiton.topia.persistence.internal.support.TopiaHibernateEventListener; +import org.nuiton.topia.persistence.pager.FilterRuleGroupOperator; import org.nuiton.topia.persistence.support.TopiaHibernateSupport; import org.nuiton.topia.persistence.support.TopiaJpaSupport; import org.nuiton.topia.persistence.support.TopiaSqlSupport; @@ -383,11 +384,15 @@ public abstract class AbstractTopiaDao<E extends TopiaEntity> implements TopiaDa } } - protected HqlAndParametersBuilder<E> newHqlAndParametersBuilder() { - HqlAndParametersBuilder<E> result = new HqlAndParametersBuilder<E>(getEntityClass()); + protected HqlAndParametersBuilder<E> newHqlAndParametersBuilder(FilterRuleGroupOperator filterRuleGroupOperator) { + HqlAndParametersBuilder<E> result = new HqlAndParametersBuilder<E>(getEntityClass(), filterRuleGroupOperator); return result; } + protected HqlAndParametersBuilder<E> newHqlAndParametersBuilder() { + return newHqlAndParametersBuilder(FilterRuleGroupOperator.AND); + } + protected HqlAndParametersBuilder<E> getHqlForProperties(String propertyName, Object propertyValue, Object... otherPropertyNamesAndValues) { @@ -457,7 +462,12 @@ public abstract class AbstractTopiaDao<E extends TopiaEntity> implements TopiaDa @Override public InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep<E> newQueryBuilder() { - HqlAndParametersBuilder<E> hqlAndParametersBuilder = newHqlAndParametersBuilder(); + return newQueryBuilder(FilterRuleGroupOperator.AND); + } + + @Override + public InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep<E> newQueryBuilder(FilterRuleGroupOperator filterRuleGroupOperator) { + HqlAndParametersBuilder<E> hqlAndParametersBuilder = newHqlAndParametersBuilder(filterRuleGroupOperator); InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep<E> result = new InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep<E>(this, hqlAndParametersBuilder); return result; } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm