- (QSEARCH-1) Support for
INconstraints with a set of values, rather than a subquery.
QueryBuilderto enable sorting by database identifier as the last sorting method for results. By default this is disabled, as it can impact performance. This should be enabled only if consistently ordered results are required from the QuerySearch.
QuerySearchelement, to enable sorting by database identifier for the specific QuerySearch instance.
INconstraint was missing a field name.
before-harvestphase support for
meta-model-stacksnapshot was used.
- (QSEARCH-10) The
QuerySearchResolverinterface was incorrectly expanded into the data layer.
- (QSEARCH-10) The
QuerySearchclass was still expanded when
noDataLayerwas present on the linked
- Refactored some field names in the meta-model to be more descriptive:
QuerySearch.fields > QuerySearch.queryFilterFields
QueryFilterField.type > QueryFilterField.queryFilterFieldType
ioxmlto serialize a more readable XML model for
QuerySearch, with tag names relevant within their local scope for specific fields and elements:
QuerySearch.queryFilterFields- XML tag:
QueryFilterField- XML tag:
QueryFilterField.queryFilterFieldType- XML tag:
QuerySearch.querySearchOptions- XML tag:
QuerySearchOption- XML tag:
QuerySearchOption.querySearchOptionType- XML tag:
QuerySearchmodels were loaded from the wrong folder.
- Expansion of
QueryFilterFieldinstances linked to
QuerySearchinstances, into its
- Moved meta elements from package
- Improved enable conditions of some expanders.
- Handle transient option
- Implemented initial meta-model for QuerySearch. This model is currently automatically instantiated to maintain backwards compatibility.
This version contains some breaking changes. Please refer to the update guide in the documentation for more information about this change and what code is affected.
QuerySearchResolverclass was moved to the
logiclayer. The current implementation requires the use of
Crudsinstances. If these are used to resolve references from another component, this would result in a strong coupling of the components. References to other components should be result using the
Agentclasses. A transient ApplicationInstance option
querysearch.transient.dataLayerResolver.enableis available to opt-out of this change.
- Updated documentation for publishing.
- Updated expander dependency:
4.4.12 > 4.13.2
between()constraint did not build the query clause correctly.
- Correct integration with NSX logger framework in expander templates.
QuerySearchResolvercan be used to resolve references in the
QueryFilterprior to the
QuerySearchbeing called. As this is a bean, the
Crudsobjects of other elements can be injected into it to resolve references. The typical use-case for this is resolving references to elements in other components.
- Updated expander dependency:
4.4.4 > 4.4.12
QueryBuilder.from()method with a
booleaninclude parameter to define a inclusion constraint for that element.
in()constraint for a subquery.
not()constraints now implement
QueryBuilderis now created by calling the
QueryBuilder.select()method and the
EntityManageris passed to the
exists()constraint will now (in addition to the previous signature) take a
QueryBuilderinstance for more complex nested queries.
- Results are no longer explicitly ordered by ID if no SortFields were given. The default ordering by the database is used instead.
- Results are no longer grouped by the ID of the element by default. If required, this should be added to the
QuerySearch.fetchData()method after the count query has been executed. This change follows a similar change in expanders version
- Added optimization to skip the data query nfi the count query (or requested number of results) is 0. This change follows a similar change in expanders version
- Added support for
jpa.optimization.skipDataQuery.disableoption introduced in expanders version
- Added support for fields in the
ORDER BYclause on objects other than the object in the
equal()constraint to check whether values have a given prefix.
equal()constraint to check whether values have a given suffix.
AndQueryConstraintnow correctly propagate a not applicable state if none of their child constraints are applicable.
- Dependency on
net.democritus:Expandersupdated to version
- Expanded code now required Java 8.
- Added expansion resource dependency support.
- An import was missing in
- The methods
Supplier<QueryConstraint>objects instead of
QueryConstraintobjects to allow for lazy evaluation of nested constraints. The old methods are still available for backwards compatibility but marked with
- Expanded code now requires at least Java 8.
- Added expander comment to all expanders.
- Not constraints are no longer applied to an inapplicable child constraint. This means that they are now transparent to empty constraints.
- Added support for the
- Is(Not)Null constraint did not generate correct JPQL statements.
- The feature anchor
QuerySearchclasses now separates each feature with the delimiter
- Update to the projecting mechanism following a breaking change in expander version
4.1.0. Please update the main expanders to this version.