Class Query<T extends BaseEntity>
- java.lang.Object
-
- com.github.collinalpert.java2db.queries.Query<T>
-
public class Query<T extends BaseEntity> extends java.lang.ObjectA 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.StringgetQuery()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.StringtoString()Query<T>where(com.github.collinalpert.lambda2sql.functions.SqlPredicate<T> predicate)Sets a WHERE clause for the DQL statement.
-
-
-
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 theBaseService.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
Optionalif there is at least one row. OtherwiseOptional.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
Queryobject, 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
Queryobject, 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
Queryobject, 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
Queryobject, now with a LIMIT.
-
getQuery
public java.lang.String getQuery()
- Returns:
- the query as a
String
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-