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 can be filled.
    Author:
    Collin Alpert
    • Constructor Summary

      Constructors 
      Constructor Description
      Query​(java.lang.Class<T> type, BaseMapper<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.
      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.
      java.lang.String toString()  
      Query<T> where​(com.github.collinalpert.lambda2sql.functions.SqlPredicate<T> predicate)
      Sets 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,
                     BaseMapper<T> mapper)
        Constructor for creating a DQL statement for a given entity. This constructor should not be used directly, but through the BaseService.query() 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.
        Returns:
        A list of entities representing the result rows.
      • where

        public Query<T> where​(com.github.collinalpert.lambda2sql.functions.SqlPredicate<T> predicate)
        Sets a WHERE clause for the DQL statement.
        Parameters:
        predicate - The predicate describing the WHERE clause.
        Returns:
        This Query object, now with a 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