Interface BaseHavingBuilder<T extends BaseHavingBuilder<T>>

Type Parameters:
T - The concrete builder type
All Known Subinterfaces:
BaseCriteriaBuilder<T,​X>, BaseCTECriteriaBuilder<X>, BaseFromQueryBuilder<T,​X>, BaseInsertCriteriaBuilder<T,​X>, BaseSubqueryBuilder<X>, CriteriaBuilder<T>, FullSelectCTECriteriaBuilder<X>, GroupByBuilder<X>, HavingAndBuilder<T>, HavingBuilder<T>, HavingOrBuilder<T>, InsertCriteriaBuilder<T>, LeafOngoingSetOperationCriteriaBuilder<X>, LeafOngoingSetOperationCTECriteriaBuilder<X>, LeafOngoingSetOperationSubqueryBuilder<X>, OngoingSetOperationCriteriaBuilder<T,​Y>, OngoingSetOperationCTECriteriaBuilder<T,​Y>, OngoingSetOperationSubqueryBuilder<T,​Y>, ReturningInsertCriteriaBuilder<T,​X>, SelectBaseCTECriteriaBuilder<X>, SelectCTECriteriaBuilder<X>, SelectRecursiveCTECriteriaBuilder<X>, StartOngoingSetOperationCriteriaBuilder<X,​Y>, StartOngoingSetOperationCTECriteriaBuilder<X,​Y>, StartOngoingSetOperationSubqueryBuilder<X,​Y>, SubqueryBuilder<T>

public interface BaseHavingBuilder<T extends BaseHavingBuilder<T>>
A base interface for builders that support having. This is related to the fact, that a query builder supports group by and having clauses.
Since:
1.0.0
Author:
Christian Beikov
  • Method Details

    • havingSubquery

      Starts a SubqueryInitiator for the left hand side of a predicate. When the subquery builder and the restriction builder for the right hand side are finished, the predicate is added to the parent predicate container represented by the type T.
      Returns:
      The subquery initiator for building a subquery
    • havingSubquery

      SubqueryInitiator<RestrictionBuilder<T>> havingSubquery​(String subqueryAlias, String expression)
      Starts a SubqueryInitiator for the left hand side of a predicate. All occurrences of subqueryAlias in expression will be replaced by the subquery. When the subquery builder and the restriction builder for the right hand side are finished, the predicate is added to the parent predicate container represented by the type T.
      Parameters:
      subqueryAlias - The alias for the subquery which will be replaced by the actual subquery
      expression - The expression which will be used as left hand side of a predicate
      Returns:
      The subquery initiator for building a subquery
    • havingSubqueries

      MultipleSubqueryInitiator<RestrictionBuilder<T>> havingSubqueries​(String expression)
      Starts a MultipleSubqueryInitiator for the left hand side of a predicate.

      All occurrences of subsequently defined subqueryAliases in expression will be replaced by the respective subquery. When the builder finishes, the resulting expression is used for the left hand side of the predicate.

      Parameters:
      expression - The expression which will be used as left hand side of a predicate
      Returns:
      The subquery initiator for building multiple subqueries for their respective subqueryAliases
      Since:
      1.2.0
    • havingSubquery

      SubqueryBuilder<RestrictionBuilder<T>> havingSubquery​(FullQueryBuilder<?,​?> criteriaBuilder)
      Starts a SubqueryBuilder base on the given criteria builder for the left hand side of a predicate. When the subquery builder and the restriction builder for the right hand side are finished, the predicate is added to the parent predicate container represented by the type T.
      Parameters:
      criteriaBuilder - The criteria builder to base the subquery on
      Returns:
      The subquery builder for building a subquery
      Since:
      1.2.0
    • havingSubquery

      SubqueryBuilder<RestrictionBuilder<T>> havingSubquery​(String subqueryAlias, String expression, FullQueryBuilder<?,​?> criteriaBuilder)
      Starts a SubqueryBuilder base on the given criteria builder for the left hand side of a predicate. All occurrences of subqueryAlias in expression will be replaced by the subquery. When the subquery builder and the restriction builder for the right hand side are finished, the predicate is added to the parent predicate container represented by the type T.
      Parameters:
      subqueryAlias - The alias for the subquery which will be replaced by the actual subquery
      expression - The expression which will be used as left hand side of a predicate
      criteriaBuilder - The criteria builder to base the subquery on
      Returns:
      The subquery builder for building a subquery
      Since:
      1.2.0
    • havingExpression

      T havingExpression​(String expression)
      Adds the given expression as expression to the having clause.
      Parameters:
      expression - The having expression
      Returns:
      The builder
      Since:
      1.4.0
    • havingExpressionSubqueries

      MultipleSubqueryInitiator<T> havingExpressionSubqueries​(String expression)
      Starts a MultipleSubqueryInitiator for expression of the having clause.

      All occurrences of subsequently defined subqueryAliases in expression will be replaced by the respective subquery. When the builder finishes, the resulting expression is added as expression to the having clause.

      Parameters:
      expression - The having expression
      Returns:
      The subquery initiator for building multiple subqueries for their respective subqueryAliases
      Since:
      1.4.0
    • having

      RestrictionBuilder<T> having​(String expression)
      Starts a RestrictionBuilder for a having predicate with the given expression as left hand expression. When the builder finishes, the predicate is added to the parent predicate container represented by the type T.
      Parameters:
      expression - The left hand expression for a having predicate
      Returns:
      The restriction builder for the given expression
    • havingCase

      Starts a CaseWhenBuilder for a where predicate. When the CaseWhenBuilder and the restriction builder for the right hand side are finished, the predicate is added to the parent predicate container represented by the type T.
      Returns:
      A CaseWhenBuilder
    • havingSimpleCase

      SimpleCaseWhenStarterBuilder<RestrictionBuilder<T>> havingSimpleCase​(String expression)
      Starts a SimpleCaseWhenBuilder for a where predicate. When the CaseWhenBuilder and the restriction builder for the right hand side are finished, the predicate is added to the parent predicate container represented by the type T.
      Parameters:
      expression - Case operand expression
      Returns:
      A CaseWhenBuilder
    • havingExists

      SubqueryInitiator<T> havingExists()
      Starts an exists predicate for the having clause with a subquery on the right hand side. When the builder finishes, the predicate is added to the parent predicate container represented by the type T.
      Returns:
      The subquery initiator for building a subquery
    • havingNotExists

      SubqueryInitiator<T> havingNotExists()
      Starts an exists predicate for the having clause with a subquery on the right hand side. When the builder finishes, the predicate is added to the parent predicate container represented by the type T.
      Returns:
      The subquery initiator for building a subquery
    • havingExists

      SubqueryBuilder<T> havingExists​(FullQueryBuilder<?,​?> criteriaBuilder)
      Starts an exists predicate for the having clause with a subquery on the right hand side based on the given criteria builder. When the builder finishes, the predicate is added to the parent predicate container represented by the type T.
      Parameters:
      criteriaBuilder - The criteria builder to base the subquery on
      Returns:
      The subquery builder for building a subquery
      Since:
      1.2.0
    • havingNotExists

      SubqueryBuilder<T> havingNotExists​(FullQueryBuilder<?,​?> criteriaBuilder)
      Starts an exists predicate for the having clause with a subquery on the right hand side based on the given criteria builder. When the builder finishes, the predicate is added to the parent predicate container represented by the type T.
      Parameters:
      criteriaBuilder - The criteria builder to base the subquery on
      Returns:
      The subquery builder for building a subquery
      Since:
      1.2.0