Class Query<T extends BaseEntity>


  • public class Query<T extends BaseEntity>
    extends java.lang.Object
    A class representing a DQL statement with different options, including where clauses, order by clauses and limits. It also automatically joins foreign keys so the corresponding entities (marked with the ForeignKeyEntity attribute) can be filled.
    Author:
    Collin Alpert
    • Constructor Summary

      Constructors 
      Constructor Description
      Query​(java.lang.Class<T> type, Mapper<T> mapper)
      Constructor for creating a DQL statement for a given entity.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.List<T> get()
      Gets the values returned from the query as a List.
      java.util.stream.Stream<T> getAsStream()
      Gets the values returned from the query as a Stream.
      java.util.Optional<T> getFirst()
      Gets the first row of a query.
      java.lang.String getQuery()  
      Query<T> limit​(int limit)
      Limits the result of the rows returned to a maximum of the passed integer.
      Query<T> orderBy​(com.github.collinalpert.lambda2sql.functions.SqlFunction<T,​?> function)
      Sets an ORDER BY clause for the DQL statement.
      Query<T> orderBy​(com.github.collinalpert.lambda2sql.functions.SqlFunction<T,​?> function, OrderTypes type)
      Sets an ORDER BY clause for the DQL statement.
      Query<T> orWhere​(com.github.collinalpert.lambda2sql.functions.SqlPredicate<T> predicate)
      Sets or appends an OR WHERE clause to the DQL statement.
      java.lang.String toString()  
      Query<T> where​(com.github.collinalpert.lambda2sql.functions.SqlPredicate<T> predicate)
      Sets or appends a WHERE clause for the DQL statement.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Query

        public Query​(java.lang.Class<T> type,
                     Mapper<T> mapper)
        Constructor for creating a DQL statement for a given entity. This constructor should not be used directly, but through the BaseService.createQuery() method which every service can use due to inheritance.
        Parameters:
        type - The entity to query.
        mapper - The mapper for mapping entities.
    • Method Detail

      • getFirst

        public java.util.Optional<T> getFirst()
        Gets the first row of a query.
        Returns:
        The first row as an entity wrapped in an Optional if there is at least one row. Otherwise Optional.empty() is returned.
      • get

        public java.util.List<T> get()
        Gets the values returned from the query as a List.
        Returns:
        A list of entities representing the result rows.
      • getAsStream

        public java.util.stream.Stream<T> getAsStream()
        Gets the values returned from the query as a Stream.
        Returns:
        A list of entities representing the result rows.
      • where

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

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

        public Query<T> orderBy​(com.github.collinalpert.lambda2sql.functions.SqlFunction<T,​?> function)
        Sets an ORDER BY clause for the DQL statement. The order will be ascending.
        Parameters:
        function - The property to order by.
        Returns:
        This Query object, now with an ORDER BY clause.
      • orderBy

        public Query<T> orderBy​(com.github.collinalpert.lambda2sql.functions.SqlFunction<T,​?> function,
                                OrderTypes type)
        Sets an ORDER BY clause for the DQL statement.
        Parameters:
        function - The property to order by.
        type - The type of ordering that should be applied.
        Returns:
        This Query object, now with an ORDER BY clause.
      • limit

        public Query<T> limit​(int limit)
        Limits the result of the rows returned to a maximum of the passed integer.
        Parameters:
        limit - The maximum of rows to be returned.
        Returns:
        This Query object, now with a LIMIT.
      • getQuery

        public java.lang.String getQuery()
        Returns:
        the query as a String
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object