Class Expr
- java.lang.Object
-
- io.ebean.Expr
-
public class Expr extends Object
Expression factory for creating standard expressions for WHERE and HAVING clauses.Generally you will only need to use this object for creating OR, JUNCTION or CONJUNCTION expressions. To create simple expressions you will most likely just use the methods on the ExpressionList object that is returned via
Query.where()
.This provides a convenient way to create expressions for the default database.
See also
DB.getExpressionFactory()
Creates standard common expressions for using in a Query Where or Having clause.
- See Also:
Query.where()
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Expression
allEq(Map<String,Object> propertyMap)
All Equal - Map containing property names and their values.static Expression
and(Expression expOne, Expression expTwo)
And - join two expressions with a logical and.static Expression
between(String propertyName, Object value1, Object value2)
Between - property between the two given values.static Expression
between(String lowProperty, String highProperty, Object value)
Between - value between two given properties.static <T> Junction<T>
conjunction(Query<T> query)
Return a list of expressions that will be joined by AND's.static Expression
contains(String propertyName, String value)
Contains - property like %value%.static <T> Junction<T>
disjunction(Query<T> query)
Return a list of expressions that will be joined by OR's.static Expression
endsWith(String propertyName, String value)
Ends With - property like %value.static Expression
eq(String propertyName, Object value)
Equal To - property equal to the given value.static ExampleExpression
exampleLike(Object example)
Create the query by Example expression which is case sensitive and using LikeType.RAW (you need to add you own wildcards % and _).static ExampleExpression
exampleLike(Object example, boolean caseInsensitive, LikeType likeType)
Create the query by Example expression specifying more options.static Expression
ge(String propertyName, Object value)
Greater Than or Equal to - property greater than or equal to the given value.static Expression
gt(String propertyName, Object value)
Greater Than - property greater than the given value.static Expression
icontains(String propertyName, String value)
Case insensitive Contains - property like %value%.static Expression
idEq(Object value)
Id Equal to - ID property is equal to the value.static Expression
iendsWith(String propertyName, String value)
Case insensitive Ends With - property like %value.static Expression
ieq(String propertyName, String value)
Case Insensitive Equal To - property equal to the given value (typically using a lower() function to make it case insensitive).static ExampleExpression
iexampleLike(Object example)
Case insensitiveexampleLike(Object)
static Expression
ilike(String propertyName, String value)
Case insensitive Like - property like value where the value contains the SQL wild card characters % (percentage) and _ (underscore).static Expression
in(String propertyName, Query<?> subQuery)
In - using a subQuery.static Expression
in(String propertyName, Object[] values)
In - property has a value in the array of values.static Expression
in(String propertyName, Collection<?> values)
In - property has a value in the collection of values.static Expression
inOrEmpty(String propertyName, Collection<?> values)
In where null or empty values means that no predicate is added to the query.static Expression
inRange(String propertyName, Object value1, Object value2)
In Range -property >= value1 and property < value2
.static Expression
isEmpty(String propertyName)
For collection properties that are empty (have not existing elements).static Expression
isNotEmpty(String propertyName)
For collection properties that are not empty (have existing elements).static Expression
isNotNull(String propertyName)
Is Not Null - property is not null.static Expression
isNull(String propertyName)
Is Null - property is null.static Expression
istartsWith(String propertyName, String value)
Case insensitive Starts With - property like value%.static Expression
le(String propertyName, Object value)
Less Than or Equal to - property less than or equal to the given value.static Expression
like(String propertyName, String value)
Like - property like value where the value contains the SQL wild card characters % (percentage) and _ (underscore).static Expression
lt(String propertyName, Object value)
Less Than - property less than the given value.static Expression
ne(String propertyName, Object value)
Not Equal To - property not equal to the given value.static Expression
not(Expression exp)
Negate the expression (prefix it with NOT).static Expression
or(Expression expOne, Expression expTwo)
Or - join two expressions with a logical or.static Expression
raw(String raw)
Add raw expression with no parameters.static Expression
raw(String raw, Object value)
Add raw expression with a single parameter.static Expression
raw(String raw, Object[] values)
Add raw expression with an array of parameters.static Expression
startsWith(String propertyName, String value)
Starts With - property like value%.
-
-
-
Method Detail
-
eq
public static Expression eq(String propertyName, Object value)
Equal To - property equal to the given value.
-
ne
public static Expression ne(String propertyName, Object value)
Not Equal To - property not equal to the given value.
-
ieq
public static Expression ieq(String propertyName, String value)
Case Insensitive Equal To - property equal to the given value (typically using a lower() function to make it case insensitive).
-
inRange
public static Expression inRange(String propertyName, Object value1, Object value2)
In Range -property >= value1 and property < value2
.Unlike Between inRange is "half open" and usually more useful for use with dates or timestamps.
-
between
public static Expression between(String propertyName, Object value1, Object value2)
Between - property between the two given values.
-
between
public static Expression between(String lowProperty, String highProperty, Object value)
Between - value between two given properties.
-
gt
public static Expression gt(String propertyName, Object value)
Greater Than - property greater than the given value.
-
ge
public static Expression ge(String propertyName, Object value)
Greater Than or Equal to - property greater than or equal to the given value.
-
lt
public static Expression lt(String propertyName, Object value)
Less Than - property less than the given value.
-
le
public static Expression le(String propertyName, Object value)
Less Than or Equal to - property less than or equal to the given value.
-
isNull
public static Expression isNull(String propertyName)
Is Null - property is null.
-
isNotNull
public static Expression isNotNull(String propertyName)
Is Not Null - property is not null.
-
iexampleLike
public static ExampleExpression iexampleLike(Object example)
Case insensitiveexampleLike(Object)
-
exampleLike
public static ExampleExpression exampleLike(Object example)
Create the query by Example expression which is case sensitive and using LikeType.RAW (you need to add you own wildcards % and _).
-
exampleLike
public static ExampleExpression exampleLike(Object example, boolean caseInsensitive, LikeType likeType)
Create the query by Example expression specifying more options.
-
like
public static Expression like(String propertyName, String value)
Like - property like value where the value contains the SQL wild card characters % (percentage) and _ (underscore).
-
ilike
public static Expression ilike(String propertyName, String value)
Case insensitive Like - property like value where the value contains the SQL wild card characters % (percentage) and _ (underscore). Typically uses a lower() function to make the expression case insensitive.
-
startsWith
public static Expression startsWith(String propertyName, String value)
Starts With - property like value%.
-
istartsWith
public static Expression istartsWith(String propertyName, String value)
Case insensitive Starts With - property like value%. Typically uses a lower() function to make the expression case insensitive.
-
endsWith
public static Expression endsWith(String propertyName, String value)
Ends With - property like %value.
-
iendsWith
public static Expression iendsWith(String propertyName, String value)
Case insensitive Ends With - property like %value. Typically uses a lower() function to make the expression case insensitive.
-
contains
public static Expression contains(String propertyName, String value)
Contains - property like %value%.
-
icontains
public static Expression icontains(String propertyName, String value)
Case insensitive Contains - property like %value%. Typically uses a lower() function to make the expression case insensitive.
-
isEmpty
public static Expression isEmpty(String propertyName)
For collection properties that are empty (have not existing elements).
-
isNotEmpty
public static Expression isNotEmpty(String propertyName)
For collection properties that are not empty (have existing elements).
-
in
public static Expression in(String propertyName, Object[] values)
In - property has a value in the array of values.
-
in
public static Expression in(String propertyName, Query<?> subQuery)
In - using a subQuery.
-
in
public static Expression in(String propertyName, Collection<?> values)
In - property has a value in the collection of values.
-
inOrEmpty
public static Expression inOrEmpty(String propertyName, Collection<?> values)
In where null or empty values means that no predicate is added to the query.That is, only add the IN predicate if the values are not null or empty.
Without this we typically need to code an
if
block to only add the IN predicate if the collection is not empty like:Without inOrEmpty()
query.where() // add some predicates .eq("status", Status.NEW); if (ids != null && !ids.isEmpty()) { query.where().in("customer.id", ids); } query.findList();
Using inOrEmpty()
query.where() .eq("status", Status.NEW) .inOrEmpty("customer.id", ids) .findList();
-
idEq
public static Expression idEq(Object value)
Id Equal to - ID property is equal to the value.
-
allEq
public static Expression allEq(Map<String,Object> propertyMap)
All Equal - Map containing property names and their values.Expression where all the property names in the map are equal to the corresponding value.
- Parameters:
propertyMap
- a map keyed by property names.
-
raw
public static Expression raw(String raw, Object value)
Add raw expression with a single parameter.The raw expression should contain a single ? at the location of the parameter.
-
raw
public static Expression raw(String raw, Object[] values)
Add raw expression with an array of parameters.The raw expression should contain the same number of ? as there are parameters.
-
raw
public static Expression raw(String raw)
Add raw expression with no parameters.
-
and
public static Expression and(Expression expOne, Expression expTwo)
And - join two expressions with a logical and.
-
or
public static Expression or(Expression expOne, Expression expTwo)
Or - join two expressions with a logical or.
-
not
public static Expression not(Expression exp)
Negate the expression (prefix it with NOT).
-
conjunction
public static <T> Junction<T> conjunction(Query<T> query)
Return a list of expressions that will be joined by AND's.
-
disjunction
public static <T> Junction<T> disjunction(Query<T> query)
Return a list of expressions that will be joined by OR's.
-
-