Class QueryBuilder


  • public class QueryBuilder
    extends java.lang.Object
    PostgreSQL query builder using JOOQ. Constructs PostgreSQL Query by provided filters.
    • Field Detail

      • STATISTICS_KEY

        public static final java.lang.String STATISTICS_KEY
        Key word for statistics criteria. Query builder works a little bit in another way with statistics criteria. It implements kind of pivot using PostgerSQL possibilities
        See Also:
        Constant Field Values
      • HAVING_CONDITION

        public static final java.util.function.BiPredicate<FilterCondition,​FilterTarget> HAVING_CONDITION
        Predicate that checks if filter condition should be applied with HAVING
    • Method Detail

      • newBuilder

        public static QueryBuilder newBuilder​(Queryable queryable,
                                              java.util.Set<java.lang.String> fields)
      • addJointToStart

        public QueryBuilder addJointToStart​(org.jooq.TableLike<? extends org.jooq.Record> table,
                                            org.jooq.JoinType joinType,
                                            org.jooq.Condition condition)
      • addJoinToEnd

        public QueryBuilder addJoinToEnd​(org.jooq.TableLike<? extends org.jooq.Record> table,
                                         org.jooq.JoinType joinType,
                                         org.jooq.Condition condition)
      • addCondition

        public QueryBuilder addCondition​(org.jooq.Condition condition)
        Adds condition to the query
        Parameters:
        condition - Condition
        Returns:
        QueryBuilder
      • addHavingCondition

        public QueryBuilder addHavingCondition​(org.jooq.Condition condition)
        Adds statistics condition to the query
        Parameters:
        condition - Condition
      • with

        public QueryBuilder with​(org.springframework.data.domain.Pageable pageable)
        Adds Pageable conditions
        Parameters:
        pageable - Pageable
        Returns:
        QueryBuilder
      • with

        public QueryBuilder with​(int limit)
        Add limit
        Parameters:
        limit - Limit
        Returns:
        QueryBuilder
      • with

        public QueryBuilder with​(org.springframework.data.domain.Sort sort)
        Convert properties to query criteria and add sorting Sort
        Parameters:
        sort - Sort condition
        Returns:
        QueryBuilder
      • with

        public QueryBuilder with​(org.jooq.Field<?> field,
                                 org.jooq.SortOrder sort)
      • build

        public org.jooq.SelectQuery<? extends org.jooq.Record> build()
        Builds query
        Returns:
        Query
      • wrap

        public QueryBuilder wrap()
        Joins inner query to load all columns after filtering
        Returns:
        Query builder
      • wrapExcludingFields

        public QueryBuilder wrapExcludingFields​(java.lang.String... excludingFields)
        Joins inner query to load columns excluding provided fields after filtering
        Returns:
        Query builder
      • withWrapperSort

        public QueryBuilder withWrapperSort​(org.springframework.data.domain.Sort sort)
      • retrieveOffsetAndApplyBoundaries

        public static int retrieveOffsetAndApplyBoundaries​(org.springframework.data.domain.Pageable pageable)