Package io.ebean
Interface Junction<T>
-
- All Superinterfaces:
Expression
,ExpressionList<T>
public interface Junction<T> extends Expression, ExpressionList<T>
Represents a Conjunction or a Disjunction.Basically with a Conjunction you join together many expressions with AND, and with a Disjunction you join together many expressions with OR.
Note: where() always takes you to the top level WHERE expression list.
Query q = DB.find(Person.class) .where() .or() .like("name", "Rob%") .eq("status", Status.NEW) // where() returns us to the top level expression list .where().gt("id", 10); // read as... // where ( ((name like Rob%) or (status = NEW)) AND (id > 10) )
Note: endJunction() takes you to the parent expression list
Query q = DB.find(Person.class) .where() .or() .like("name", "Rob%") .eq("status", Status.NEW) .endJunction() // endJunction().. takes us to the 'parent' expression list // which in this case is the top level (same as where()) .gt("id", 10); // read as... // where ( ((name like Rob%) or (status = NEW)) AND (id > 10) )
Example of a nested disjunction.
Query<Customer> q = DB.find(Customer.class) .where() .or() .and() .startsWith("name", "r") .eq("anniversary", onAfter) .endAnd() .and() .eq("status", Customer.Status.ACTIVE) .gt("id", 0) .endAnd() .order().asc("name"); q.findList(); String s = q.getGeneratedSql(); // this produces an expression like: ( name like ? and c.anniversary = ? ) or (c.status = ? and c.id > ? )
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Junction.Type
The type of Junction used in full text expressions.
-
Method Summary
-
Methods inherited from interface io.ebean.ExpressionList
add, addAll, allEq, and, and, apply, arrayContains, arrayIsEmpty, arrayIsNotEmpty, arrayNotContains, asDraft, asDto, asOf, asUpdate, between, betweenProperties, bitwiseAll, bitwiseAnd, bitwiseAny, bitwiseNot, conjunction, contains, delete, delete, disjunction, endAnd, endJunction, endNot, endOr, endsWith, eq, eqOrNull, exampleLike, exists, exists, filterMany, filterMany, findCount, findEach, findEach, findEachWhile, findFutureCount, findFutureIds, findFutureList, findIds, findIterate, findList, findMap, findOne, findOneOrEmpty, findPagedList, findSet, findSingleAttribute, findSingleAttributeList, findVersions, findVersionsBetween, forUpdate, forUpdateNoWait, forUpdateSkipLocked, ge, geOrNull, gt, gtOrNull, having, icontains, idEq, idIn, idIn, iendsWith, ieq, iexampleLike, ilike, in, in, in, ine, inOrEmpty, inPairs, inRange, inRangeWith, isEmpty, isIn, isIn, isIn, isNotEmpty, isNotNull, isNull, istartsWith, jsonBetween, jsonEqualTo, jsonExists, jsonGreaterOrEqual, jsonGreaterThan, jsonLessOrEqualTo, jsonLessThan, jsonNotEqualTo, jsonNotExists, le, leOrNull, like, lt, ltOrNull, match, match, multiMatch, multiMatch, must, mustNot, ne, not, not, notExists, notIn, notIn, notIn, or, or, order, order, orderBy, orderBy, orderById, query, raw, raw, raw, rawOrEmpty, select, select, setBeanCacheMode, setCountDistinct, setDisableLazyLoading, setDisableReadAuditing, setDistinct, setDocIndexName, setFirstRow, setIncludeSoftDeletes, setLabel, setMapKey, setMaxRows, setOrderBy, setUseCache, setUseDocStore, setUseQueryCache, setUseQueryCache, should, startsWith, textCommonTerms, textQueryString, textSimple, update, update, usingConnection, usingTransaction, where, where, withLock, withLock
-
-