Interface QueryModel

All Superinterfaces:
Criteria
All Known Implementing Classes:
AssociationQuery, DefaultQuery

public interface QueryModel extends Criteria
Main interface for constructing queries at either compilation or runtime.
Since:
1.0
Author:
graemerocher
  • Method Details

    • idEq

      @NonNull @NonNull QueryModel idEq(Object parameter)
      Description copied from interface: Criteria
      Creates an "equals" Criterion based on the specified property name and value.
      Specified by:
      idEq in interface Criteria
      Parameters:
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • versionEq

      @NonNull @NonNull QueryModel versionEq(Object parameter)
      Description copied from interface: Criteria
      Creates that restricts the version to the given value.
      Specified by:
      versionEq in interface Criteria
      Parameters:
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • isEmpty

      @NonNull @NonNull QueryModel isEmpty(@NonNull @NonNull String propertyName)
      Description copied from interface: Criteria
      Creates a criterion that asserts the given property is empty (such as a blank string).
      Specified by:
      isEmpty in interface Criteria
      Parameters:
      propertyName - The property name
      Returns:
      The criteria
    • isNotEmpty

      @NonNull @NonNull QueryModel isNotEmpty(@NonNull @NonNull String propertyName)
      Description copied from interface: Criteria
      Creates a criterion that asserts the given property is not empty.
      Specified by:
      isNotEmpty in interface Criteria
      Parameters:
      propertyName - The property name
      Returns:
      The criteria
    • isNull

      @NonNull @NonNull QueryModel isNull(@NonNull @NonNull String propertyName)
      Description copied from interface: Criteria
      Creates a criterion that asserts the given property is null.
      Specified by:
      isNull in interface Criteria
      Parameters:
      propertyName - The property name
      Returns:
      The criteria
    • isTrue

      @NonNull @NonNull QueryModel isTrue(@NonNull @NonNull String propertyName)
      Description copied from interface: Criteria
      Creates a criterion that asserts the given property is true.
      Specified by:
      isTrue in interface Criteria
      Parameters:
      propertyName - The property name
      Returns:
      The criteria
    • isFalse

      @NonNull @NonNull QueryModel isFalse(@NonNull @NonNull String propertyName)
      Description copied from interface: Criteria
      Creates a criterion that asserts the given property is false.
      Specified by:
      isFalse in interface Criteria
      Parameters:
      propertyName - The property name
      Returns:
      The criteria
    • isNotNull

      @NonNull @NonNull QueryModel isNotNull(String propertyName)
      Description copied from interface: Criteria
      Creates a criterion that asserts the given property is not null.
      Specified by:
      isNotNull in interface Criteria
      Parameters:
      propertyName - The property name
      Returns:
      The criteria
    • eq

      @NonNull @NonNull QueryModel eq(String propertyName, Object parameter)
      Description copied from interface: Criteria
      Creates an "equals" Criterion based on the specified property name and value.
      Specified by:
      eq in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • ne

      @NonNull @NonNull QueryModel ne(@NonNull @NonNull String propertyName, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Creates a "not equals" Criterion based on the specified property name and value.
      Specified by:
      ne in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • between

      @NonNull @NonNull QueryModel between(@NonNull @NonNull String propertyName, @NonNull @NonNull Object start, @NonNull @NonNull Object finish)
      Description copied from interface: Criteria
      Restricts the results by the given property value range (inclusive).
      Specified by:
      between in interface Criteria
      Parameters:
      propertyName - The property name
      start - The start of the range
      finish - The end of the range
      Returns:
      The criteria
    • gte

      @NonNull @NonNull QueryModel gte(@NonNull @NonNull String property, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Used to restrict a value to be greater than or equal to the given value.
      Specified by:
      gte in interface Criteria
      Parameters:
      property - The property
      parameter - The parameter that provides the value
      Returns:
      The Criterion instance
    • ge

      @NonNull @NonNull QueryModel ge(@NonNull @NonNull String property, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Used to restrict a value to be greater than or equal to the given value.
      Specified by:
      ge in interface Criteria
      Parameters:
      property - The property
      parameter - The parameter that provides the value
      Returns:
      The Criterion instance
    • gt

      @NonNull @NonNull QueryModel gt(@NonNull @NonNull String property, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Used to restrict a value to be greater than or equal to the given value.
      Specified by:
      gt in interface Criteria
      Parameters:
      property - The property
      parameter - The parameter that provides the value
      Returns:
      The Criterion instance
    • lte

      @NonNull @NonNull QueryModel lte(@NonNull @NonNull String property, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Used to restrict a value to be less than or equal to the given value.
      Specified by:
      lte in interface Criteria
      Parameters:
      property - The property
      parameter - The parameter that provides the value
      Returns:
      The Criterion instance
    • le

      @NonNull @NonNull QueryModel le(@NonNull @NonNull String property, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Used to restrict a value to be less than or equal to the given value.
      Specified by:
      le in interface Criteria
      Parameters:
      property - The property
      parameter - The parameter that provides the value
      Returns:
      The Criterion instance
    • lt

      @NonNull @NonNull QueryModel lt(@NonNull @NonNull String property, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Used to restrict a value to be less than or equal to the given value.
      Specified by:
      lt in interface Criteria
      Parameters:
      property - The property
      parameter - The parameter that provides the value
      Returns:
      The Criterion instance
    • like

      @NonNull @NonNull QueryModel like(@NonNull @NonNull String propertyName, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Creates a like Criterion based on the specified property name and value.
      Specified by:
      like in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • startsWith

      @NonNull @NonNull QueryModel startsWith(@NonNull @NonNull String propertyName, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Restricts the property match to strings starting with the given value.
      Specified by:
      startsWith in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • endsWith

      @NonNull @NonNull QueryModel endsWith(@NonNull @NonNull String propertyName, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Restricts the property match to strings ending with the given value.
      Specified by:
      endsWith in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • contains

      @NonNull @NonNull QueryModel contains(@NonNull @NonNull String propertyName, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Restricts the property match to strings containing with the given value.
      Specified by:
      contains in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • ilike

      @NonNull @NonNull QueryModel ilike(@NonNull @NonNull String propertyName, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Creates an ilike Criterion based on the specified property name and value. Unlike a like condition, ilike is case insensitive.
      Specified by:
      ilike in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • rlike

      @NonNull @NonNull QueryModel rlike(@NonNull @NonNull String propertyName, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Creates an rlike Criterion based on the specified property name and value.
      Specified by:
      rlike in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • and

      @NonNull @NonNull QueryModel and(@NonNull @NonNull Criteria other)
      Description copied from interface: Criteria
      Creates a logical conjunction.
      Specified by:
      and in interface Criteria
      Parameters:
      other - The other criteria
      Returns:
      This criteria
    • or

      @NonNull @NonNull QueryModel or(@NonNull @NonNull Criteria other)
      Description copied from interface: Criteria
      Creates a logical disjunction.
      Specified by:
      or in interface Criteria
      Parameters:
      other - The other criteria
      Returns:
      This criteria
    • not

      @NonNull @NonNull QueryModel not(@NonNull @NonNull Criteria other)
      Description copied from interface: Criteria
      Creates a logical negation.
      Specified by:
      not in interface Criteria
      Parameters:
      other - The other criteria
      Returns:
      This criteria
    • inList

      @NonNull @NonNull QueryModel inList(@NonNull @NonNull String propertyName, @NonNull @NonNull QueryModel subquery)
      Description copied from interface: Criteria
      Creates an "in" Criterion using a subquery.
      Specified by:
      inList in interface Criteria
      Parameters:
      propertyName - The property name
      subquery - The subquery
      Returns:
      The criteria
    • inList

      @NonNull @NonNull QueryModel inList(@NonNull @NonNull String propertyName, @NonNull @NonNull Object parameter)
      Description copied from interface: Criteria
      Creates an "in" Criterion based on the specified property name and list of values.
      Specified by:
      inList in interface Criteria
      Parameters:
      propertyName - The property name
      parameter - The parameter that provides the value
      Returns:
      The criteria
    • notIn

      @NonNull @NonNull QueryModel notIn(@NonNull @NonNull String propertyName, @NonNull @NonNull QueryModel subquery)
      Description copied from interface: Criteria
      Creates a negated "in" Criterion using a subquery.
      Specified by:
      notIn in interface Criteria
      Parameters:
      propertyName - The property name
      subquery - The subquery
      Returns:
      The criteria
    • sizeEq

      @NonNull @NonNull QueryModel sizeEq(@NonNull @NonNull String propertyName, @NonNull @NonNull Object size)
      Description copied from interface: Criteria
      Creates a Criterion that constrains a collection property by size.
      Specified by:
      sizeEq in interface Criteria
      Parameters:
      propertyName - The property name
      size - The size to constrain by
      Returns:
      This criteria
    • sizeGt

      @NonNull @NonNull QueryModel sizeGt(@NonNull @NonNull String propertyName, @NonNull @NonNull Object size)
      Description copied from interface: Criteria
      Creates a Criterion that constrains a collection property to be greater than the given size.
      Specified by:
      sizeGt in interface Criteria
      Parameters:
      propertyName - The property name
      size - The size to constrain by
      Returns:
      This criteria
    • sizeGe

      @NonNull @NonNull QueryModel sizeGe(@NonNull @NonNull String propertyName, @NonNull @NonNull Object size)
      Description copied from interface: Criteria
      Creates a Criterion that constrains a collection property to be greater than or equal to the given size.
      Specified by:
      sizeGe in interface Criteria
      Parameters:
      propertyName - The property name
      size - The size to constrain by
      Returns:
      This criteria
    • sizeLe

      @NonNull @NonNull QueryModel sizeLe(@NonNull @NonNull String propertyName, @NonNull @NonNull Object size)
      Description copied from interface: Criteria
      Creates a Criterion that constrains a collection property to be less than or equal to the given size.
      Specified by:
      sizeLe in interface Criteria
      Parameters:
      propertyName - The property name
      size - The size to constrain by
      Returns:
      This criteria
    • sizeLt

      @NonNull @NonNull QueryModel sizeLt(@NonNull @NonNull String propertyName, @NonNull @NonNull Object size)
      Description copied from interface: Criteria
      Creates a Criterion that constrains a collection property to be less than to the given size.
      Specified by:
      sizeLt in interface Criteria
      Parameters:
      propertyName - The property name
      size - The size to constrain by
      Returns:
      This criteria
    • sizeNe

      @NonNull @NonNull QueryModel sizeNe(@NonNull @NonNull String propertyName, @NonNull @NonNull Object size)
      Description copied from interface: Criteria
      Creates a Criterion that constrains a collection property to be not equal to the given size.
      Specified by:
      sizeNe in interface Criteria
      Parameters:
      propertyName - The property name
      size - The size to constrain by
      Returns:
      This criteria
    • eqProperty

      @NonNull @NonNull QueryModel eqProperty(@NonNull @NonNull String propertyName, @NonNull @NonNull String otherPropertyName)
      Description copied from interface: Criteria
      Constrains a property to be equal to a specified other property.
      Specified by:
      eqProperty in interface Criteria
      Parameters:
      propertyName - The property
      otherPropertyName - The other property
      Returns:
      This criteria
    • neProperty

      @NonNull @NonNull QueryModel neProperty(@NonNull @NonNull String propertyName, @NonNull @NonNull String otherPropertyName)
      Description copied from interface: Criteria
      Constrains a property to be not equal to a specified other property.
      Specified by:
      neProperty in interface Criteria
      Parameters:
      propertyName - The property
      otherPropertyName - The other property
      Returns:
      This criteria
    • gtProperty

      @NonNull @NonNull QueryModel gtProperty(@NonNull @NonNull String propertyName, @NonNull @NonNull String otherPropertyName)
      Description copied from interface: Criteria
      Constrains a property to be greater than a specified other property.
      Specified by:
      gtProperty in interface Criteria
      Parameters:
      propertyName - The property
      otherPropertyName - The other property
      Returns:
      This criteria
    • geProperty

      @NonNull @NonNull QueryModel geProperty(@NonNull @NonNull String propertyName, @NonNull @NonNull String otherPropertyName)
      Description copied from interface: Criteria
      Constrains a property to be greater than or equal to a specified other property.
      Specified by:
      geProperty in interface Criteria
      Parameters:
      propertyName - The property
      otherPropertyName - The other property
      Returns:
      This criteria
    • ltProperty

      @NonNull @NonNull QueryModel ltProperty(@NonNull @NonNull String propertyName, @NonNull @NonNull String otherPropertyName)
      Description copied from interface: Criteria
      Constrains a property to be less than a specified other property.
      Specified by:
      ltProperty in interface Criteria
      Parameters:
      propertyName - The property
      otherPropertyName - The other property
      Returns:
      This criteria
    • leProperty

      @NonNull @NonNull QueryModel leProperty(String propertyName, @NonNull @NonNull String otherPropertyName)
      Description copied from interface: Criteria
      Constrains a property to be less than or equal to a specified other property.
      Specified by:
      leProperty in interface Criteria
      Parameters:
      propertyName - The property
      otherPropertyName - The other property
      Returns:
      This criteria
    • allEq

      @NonNull @NonNull QueryModel allEq(@NonNull @NonNull Map<String,Object> propertyValues)
      Description copied from interface: Criteria
      Apply an "equals" constraint to each property in the key set of a Map.
      Specified by:
      allEq in interface Criteria
      Parameters:
      propertyValues - a map from property names to values
      Returns:
      Criterion
    • eqAll

      @NonNull @NonNull QueryModel eqAll(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is equals to all the given returned values.
      Specified by:
      eqAll in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - A subquery
      Returns:
      This criterion instance
    • gtAll

      @NonNull @NonNull QueryModel gtAll(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is greater than all the given returned values.
      Specified by:
      gtAll in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - A subquery
      Returns:
      This criterion instance
    • ltAll

      @NonNull @NonNull QueryModel ltAll(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is less than all the given returned values.
      Specified by:
      ltAll in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - A subquery
      Returns:
      This criterion instance
    • geAll

      @NonNull @NonNull QueryModel geAll(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is greater than or equals to all the given returned values.
      Specified by:
      geAll in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - A subquery
      Returns:
      This criterion instance
    • leAll

      @NonNull @NonNull QueryModel leAll(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is less than or equal to all the given returned values.
      Specified by:
      leAll in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - A subquery
      Returns:
      This criterion instance
    • gtSome

      @NonNull @NonNull QueryModel gtSome(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is greater than some of the given values.
      Specified by:
      gtSome in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - The property value
      Returns:
      This Criteria instance
    • geSome

      @NonNull @NonNull QueryModel geSome(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is greater than or equal to some of the given values.
      Specified by:
      geSome in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - The property value
      Returns:
      This Criteria instance
    • ltSome

      @NonNull @NonNull QueryModel ltSome(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is less than some of the given values.
      Specified by:
      ltSome in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - The property value
      Returns:
      This Criteria instance
    • leSome

      @NonNull @NonNull QueryModel leSome(@NonNull @NonNull String propertyName, @NonNull @NonNull Criteria propertyValue)
      Description copied from interface: Criteria
      Creates a subquery criterion that ensures the given property is less than or equal to some of the given values.
      Specified by:
      leSome in interface Criteria
      Parameters:
      propertyName - The property name
      propertyValue - The property value
      Returns:
      This Criteria instance
    • getJoinPaths

      Collection<JoinPath> getJoinPaths()
      Returns:
      The join paths.
    • getPersistentEntity

      @NonNull @NonNull PersistentEntity getPersistentEntity()
      Returns:
      The entity the criteria applies to
    • getCriteria

      @NonNull QueryModel.Junction getCriteria()
      Returns:
      The criteria for this query
    • getProjections

      @NonNull @NonNull List<QueryModel.Projection> getProjections()
      Returns:
      The projections that apply to this query.
    • getJoinPath

      Optional<JoinPath> getJoinPath(String path)
      Obtain the join type for the given association.
      Parameters:
      path - The path
      Returns:
      The join type for the association.
    • join

      @NonNull @NonNull JoinPath join(String path, @NonNull Join.Type joinType, @Nullable @Nullable String alias)
      Join on the given association.
      Parameters:
      path - The join path
      joinType - The join type
      alias - The alias to use.
      Returns:
      The query
    • join

      @NonNull default @NonNull JoinPath join(@NonNull @NonNull Association association, @NonNull Join.Type joinType)
      Join on the given association.
      Parameters:
      association - The association, never null
      joinType - The join type
      Returns:
      The query
    • join

      @NonNull default @NonNull JoinPath join(@NonNull @NonNull Association association)
      Join on the given association.
      Parameters:
      association - The association, never null
      Returns:
      The query
    • projections

      @NonNull @NonNull ProjectionList projections()
      Returns:
      The projection list.
    • add

      @NonNull @NonNull QueryModel add(@NonNull @NonNull QueryModel.Criterion criterion)
      Adds the specified criterion instance to the query.
      Parameters:
      criterion - The criterion instance
      Returns:
      This query
    • max

      QueryModel max(int max)
      Limits the maximum result.
      Parameters:
      max - The pageSize
      Returns:
      This query
    • offset

      QueryModel offset(long offset)
      Sets the offset.
      Parameters:
      offset - The offset
      Returns:
      This query
    • getSort

      default Sort getSort()
      The sort to apply.
      Returns:
      The sort
    • sort

      @NonNull @NonNull QueryModel sort(@NonNull @NonNull Sort sort)
      Apply the given sort.
      Parameters:
      sort - The sort to apply
      Returns:
      This query
    • from

      @NonNull static @NonNull QueryModel from(@NonNull @NonNull PersistentEntity entity)
      Creates a query from the given entity.
      Parameters:
      entity - The entity
      Returns:
      The query
    • getMax

      int getMax()
      Get the pageSize results to return.
      Returns:
      The pageSize results
    • getOffset

      long getOffset()
      Get the offset of the query.
      Returns:
      The offset
    • forUpdate

      void forUpdate()
      Lock the selected entities.
    • isForUpdate

      boolean isForUpdate()
      Whether to lock the selected entities.
      Returns:
      true if the the selected entities should be locked