
com.avaje.ebean.Junction Maven / Gradle / Ivy
package com.avaje.ebean;
/**
* 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 =
* Ebean.find(Person.class)
* .where().disjunction()
* .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 =
* Ebean.find(Person.class)
* .where().disjunction()
* .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 =
* Ebean.find(Customer.class)
* .where()
* .disjunction()
* .conjunction()
* .startsWith("name", "r")
* .eq("anniversary", onAfter)
* .endJunction()
* .conjunction()
* .eq("status", Customer.Status.ACTIVE)
* .gt("id", 0)
* .endJunction()
* .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 > ? )
*
*
*/
public interface Junction extends Expression, ExpressionList {
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy