Changelog querysearch-expanders

Filter x

2.4.0 (2021-05-20)

Added

  • (QSEARCH-1) Support for IN constraints with a set of values, rather than a subquery.
  • useDefaultOrder(boolean) method in QueryBuilder to 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.
  • useDefaultOrder option on QuerySearch element, to enable sorting by database identifier for the specific QuerySearch instance.

2.3.3 (2021-05-12)

Fixed

  • The IN constraint was missing a field name.

2.3.2 (2021-05-06)

Fixed

  • Added before-expansion/before-harvest phase support for QuerySearch element.

2.3.1 (2021-04-16)

Fixed

  • meta-model-stack snapshot was used.

2.3.0 (2021-04-06)

Fixed

  • (QSEARCH-10) The QuerySearchResolver interface was incorrectly expanded into the data layer.
  • (QSEARCH-10) The QuerySearch class was still expanded when noDataLayer was present on the linked DataElement.

Changed

  • Refactored some field names in the meta-model to be more descriptive:
    • QuerySearch.fields > QuerySearch.queryFilterFields
    • QueryFilterField.type > QueryFilterField.queryFilterFieldType
  • Modified ioxml to 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: field
    • QueryFilterField - XML tag: field
    • QueryFilterField.queryFilterFieldType - XML tag: type
    • QuerySearch.querySearchOptions - XML tag: options
    • QuerySearchOption - XML tag: option
    • QuerySearchOption.querySearchOptionType - XML tag: type

2.2.0 (2021-03-24)

Fixed

  • QuerySearch models were loaded from the wrong folder.

Added

  • QueryFilterField and QueryFilterFieldType elements.
  • Expansion of QueryFilterField instances linked to QuerySearch instances, into its QueryFilter class.
  • QuerySearchOption and QuerySearchOptionType elements.

Changed

  • Moved meta elements from package net.democritus to net.democritus.querysearch.

2.1.0 (2021-03-08)

Changed

  • Improved enable conditions of some expanders.
  • Handle transient option enableQuerySearch in initialize phase.

2.0.0 (2021-03-04)

Added

  • Implemented initial meta-model for QuerySearch. This model is currently automatically instantiated to maintain backwards compatibility.

1.11.0 (2021-03-04)

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.

Changed

  • QuerySearchResolver class was moved to the logic layer. The current implementation requires the use of Cruds instances. 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 Agent classes. A transient ApplicationInstance option querysearch.transient.dataLayerResolver.enable is available to opt-out of this change.

1.10.0 (2021-02-24)

Added

  • Updated documentation for publishing.

Changed

  • Updated expander dependency:
    • net.democritus:Expanders: 4.4.12 > 4.13.2

1.9.0 (2021-01-20)

Fixed

  • The between() constraint did not build the query clause correctly.
  • Correct integration with NSX logger framework in expander templates.

Added

  • QuerySearchResolver can be used to resolve references in the QueryFilter prior to the QuerySearch being called. As this is a bean, the Cruds objects 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.

Changed

  • Updated expander dependency:
    • net.democritus:Expanders: 4.4.4 > 4.4.12

1.8.0 (2020-10-12)

Added

  • Additional QueryBuilder.from() method with a boolean include parameter to define a inclusion constraint for that element.
  • Added in() constraint for a subquery.

Changed

  • isNull(), isNotNull(), exists() and not() constraints now implement UnaryQueryConstraint.

1.7.0 (2020-08-18)

Changed

  • The QueryBuilder is now created by calling the QueryBuilder.select() method and the EntityManager is passed to the buildQuery() and buildCountQuery() methods.
  • The exists() constraint will now (in addition to the previous signature) take a QueryBuilder instance 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 QueryBuilder in the QuerySearch class.

1.6.0 (2020-08-14)

Added

  • Added fetch-after-count anchors QuerySearch.fetchData() method after the count query has been executed. This change follows a similar change in expanders version 4.6.0.
  • 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 4.6.0.
  • Added support for jpa.optimization.skipDataQuery.disable option introduced in expanders version 4.6.0.
  • Added support for fields in the ORDER BY clause on objects other than the object in the SELECT clause.

1.5.0 (2020-06-18)

Added

  • HAS_PREFIX option for equal() constraint to check whether values have a given prefix.
  • HAS_SUFFIX option for equal() constraint to check whether values have a given suffix.

1.4.0 (2020-05-20)

Fixed

  • OrQueryConstraint and AndQueryConstraint now correctly propagate a not applicable state if none of their child constraints are applicable.

Changed

  • Dependency on net.democritus:Expanders updated to version 4.4.4.
  • Expanded code now required Java 8.

1.3.2 (2020-05-04)

Changed

  • Added expansion resource dependency support.

1.3.1 (2020-03-30)

Fixed

  • An import was missing in OnionQueryConstraintFactory.

1.3.0 (2020-03-30)

Changed

  • The methods OnionQueryConstraintFactory.when() and OnionQueryConstraintFactory.whenOrElse() now take Supplier<QueryConstraint> objects instead of QueryConstraint objects to allow for lazy evaluation of nested constraints. The old methods are still available for backwards compatibility but marked with @Deprecated.
  • Expanded code now requires at least Java 8.

1.2.0 (2020-02-25)

Changed

  • 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

  • Added support for the noDataLayer option.

1.1.1 (2020-02-05)

Fixed

  • Is(Not)Null constraint did not generate correct JPQL statements.

1.1.0 (2020-01-22)

Fixed

  • The feature anchor constraints in the QuerySearch classes now separates each feature with the delimiter ,\n.
  • Update to the projecting mechanism following a breaking change in expander version 4.1.0. Please update the main expanders to this version.