Class AsyncEntityQuery<E extends BaseEntity>

java.lang.Object
com.github.collinalpert.java2db.queries.SingleEntityQuery<E>
com.github.collinalpert.java2db.queries.EntityQuery<E>
com.github.collinalpert.java2db.queries.async.AsyncEntityQuery<E>
All Implemented Interfaces:
AsyncQueryable<E>, AsyncSingleQueryable<E>, Queryable<E>, SingleQueryable<E>

public class AsyncEntityQuery<E extends BaseEntity>
extends EntityQuery<E>
implements AsyncQueryable<E>
Author:
Collin Alpert
  • Constructor Details

    • AsyncEntityQuery

      public AsyncEntityQuery​(java.lang.Class<E> type)
      Constructor for creating a DQL statement for a given entity. This constructor should not be used directly, but through the DQL methods defined in the BaseService.
      Parameters:
      type - The entity to query.
  • Method Details

    • where

      public AsyncEntityQuery<E> where​(com.github.collinalpert.lambda2sql.functions.SqlPredicate<E> predicate)
      Sets or appends a WHERE clause for the DQL statement.
      Overrides:
      where in class EntityQuery<E extends BaseEntity>
      Parameters:
      predicate - The predicate describing the WHERE clause.
      Returns:
      This EntityQuery object, now with an (appended) WHERE clause.
    • orWhere

      public AsyncEntityQuery<E> orWhere​(com.github.collinalpert.lambda2sql.functions.SqlPredicate<E> predicate)
      Sets or appends an OR WHERE clause to the DQL statement.
      Overrides:
      orWhere in class EntityQuery<E extends BaseEntity>
      Parameters:
      predicate - The predicate describing the OR WHERE clause.
      Returns:
      This EntityQuery object, now with an (appended) OR WHERE clause.
    • orderBy

      public AsyncEntityQuery<E> orderBy​(com.github.collinalpert.lambda2sql.functions.SqlFunction<E,​?> function)
      Sets an ORDER BY clauses for the DQL statement.
      Overrides:
      orderBy in class EntityQuery<E extends BaseEntity>
      Parameters:
      function - The column to order by.
      Returns:
      This EntityQuery object, now with a ORDER BY clause.
    • orderBy

      public AsyncEntityQuery<E> orderBy​(com.github.collinalpert.lambda2sql.functions.SqlFunction<E,​?>[] functions)
      Sets multiple ORDER BY clauses for the DQL statement. The resulting ORDER BY statement will coalesce the passed columns.
      Overrides:
      orderBy in class EntityQuery<E extends BaseEntity>
      Parameters:
      functions - The columns to order by in a coalescing manner.
      Returns:
      This EntityQuery object, now with a coalesced ORDER BY clause.
    • orderBy

      public AsyncEntityQuery<E> orderBy​(java.util.List<com.github.collinalpert.lambda2sql.functions.SqlFunction<E,​?>> functions)
      Sets multiple ORDER BY clauses for the DQL statement. The resulting ORDER BY statement will coalesce the passed columns.
      Overrides:
      orderBy in class EntityQuery<E extends BaseEntity>
      Parameters:
      functions - The columns to order by in a coalescing manner.
      Returns:
      This EntityQuery object, now with a coalesced ORDER BY clause.
    • orderBy

      public AsyncEntityQuery<E> orderBy​(OrderTypes orderType, com.github.collinalpert.lambda2sql.functions.SqlFunction<E,​?> function)
      Sets an ORDER BY clauses for the DQL statement with a sorting order option.
      Overrides:
      orderBy in class EntityQuery<E extends BaseEntity>
      Parameters:
      orderType - The direction to order by. Can be either ascending or descending.
      function - The column to order by.
      Returns:
      This EntityQuery object, now with a ORDER BY clause.
    • orderBy

      public AsyncEntityQuery<E> orderBy​(OrderTypes orderType, com.github.collinalpert.lambda2sql.functions.SqlFunction<E,​?>[] functions)
      Sets multiple ORDER BY clauses for the DQL statement with a sorting order option. The resulting ORDER BY statement will coalesce the passed columns.
      Overrides:
      orderBy in class EntityQuery<E extends BaseEntity>
      Parameters:
      orderType - The direction to order by. Can be either ascending or descending.
      functions - The columns to order by in a coalescing manner.
      Returns:
      This EntityQuery object, now with a coalesced ORDER BY clause.
    • orderBy

      public AsyncEntityQuery<E> orderBy​(OrderTypes orderType, java.util.List<com.github.collinalpert.lambda2sql.functions.SqlFunction<E,​?>> functions)
      Sets multiple ORDER BY clauses for the DQL statement with a sorting order option. The resulting ORDER BY statement will coalesce the passed columns.
      Overrides:
      orderBy in class EntityQuery<E extends BaseEntity>
      Parameters:
      orderType - The direction to order by. Can be either ascending or descending.
      functions - The columns to order by in a coalescing manner.
      Returns:
      This EntityQuery object, now with a coalesced ORDER BY clause.
    • limit

      public AsyncEntityQuery<E> limit​(int limit, int offset)
      Limits the result of the rows returned to a maximum of the passed integer with an offset. For example, the call .limit(10, 5) would return the rows 6-15.
      Overrides:
      limit in class EntityQuery<E extends BaseEntity>
      Parameters:
      limit - The maximum of rows to be returned.
      offset - The offset of the limit.
      Returns:
      This EntityQuery object, now with a LIMIT with an OFFSET.
    • limit

      public AsyncEntityQuery<E> limit​(int limit)
      Limits the result of the rows returned to a maximum of the passed integer.
      Overrides:
      limit in class EntityQuery<E extends BaseEntity>
      Parameters:
      limit - The maximum of rows to be returned.
      Returns:
      This EntityQuery object, now with a LIMIT.
    • project

      public <R> AsyncQueryable<R> project​(com.github.collinalpert.lambda2sql.functions.SqlFunction<E,​R> projection)
      Selects only a single column from a table. This is meant if you don't want to fetch an entire entity from the database.
      Overrides:
      project in class EntityQuery<E extends BaseEntity>
      Type Parameters:
      R - The type of the column you want to retrieve.
      Parameters:
      projection - The column to project to.
      Returns:
      A queryable containing the projection.