public class Criteria
extends java.lang.Object
implements java.io.Serializable
Criteria are used, rather than a simple string, because they can be precompiled for efficiency. This code is based on stuff from COBRA - Java Object Persistence Layer Copyright (C) 1997, 1998 DB Harvey-George eMail: cobra@lowrent.org
| Modifier and Type | Field and Description |
|---|---|
static int |
AND
criteria is AND-ed with it's parent
|
static int |
NONE
criteria has no parent
|
static int |
OR
criteria is OR-ed with it's parent
|
static java.lang.String |
PARENT_QUERY_PREFIX
prefix to identify attributes referencing enclosing query
|
| Constructor and Description |
|---|
Criteria()
Constructor declaration
|
Criteria(SelectionCriteria aSelectionCriteria)
Constructor with a SelectionCriteria
|
| Modifier and Type | Method and Description |
|---|---|
void |
addAndCriteria(Criteria pc)
ANDs two sets of criteria together:
|
void |
addBetween(java.lang.Object attribute,
java.lang.Object value1,
java.lang.Object value2)
Adds BETWEEN criteria,
customer_id between 1 and 10
|
void |
addColumnEqualTo(java.lang.String column,
java.lang.Object value)
Adds and equals (=) criteria,
CUST_ID = 10034
attribute will NOT be translated into column name
|
void |
addColumnEqualToField(java.lang.String column,
java.lang.Object fieldName)
Adds and equals (=) criteria for field comparison.
|
void |
addColumnIn(java.lang.String column,
java.util.Collection values)
Adds IN criteria,
customer_id in(1,10,33,44)
large values are split into multiple InCriteria
IN (1,10) OR IN(33, 44)
The attribute will NOT be translated into column name
|
void |
addColumnIsNull(java.lang.String column)
Adds is Null criteria,
customer_id is Null
The attribute will NOT be translated into column name
|
void |
addColumnNotNull(java.lang.String column)
Adds not Null criteria,
customer_id is not Null
The attribute will NOT be translated into column name
|
void |
addEqualTo(java.lang.String attribute,
java.lang.Object value)
Adds and equals (=) criteria,
customer_id = 10034
|
void |
addEqualToColumn(java.lang.String attribute,
java.lang.String colName)
Adds and equals (=) criteria for column comparison.
|
void |
addEqualToField(java.lang.String attribute,
java.lang.String fieldName)
Adds and equals (=) criteria for field comparison.
|
void |
addExists(Query subQuery)
Adds an exists(sub query)
|
void |
addGreaterOrEqualThan(java.lang.Object attribute,
java.lang.Object value)
Adds GreaterOrEqual Than (>=) criteria,
customer_id >= 10034
|
void |
addGreaterOrEqualThanField(java.lang.String attribute,
java.lang.Object value)
Adds GreaterOrEqual Than (>=) criteria,
customer_id >= person_id
|
void |
addGreaterThan(java.lang.Object attribute,
java.lang.Object value)
Adds Greater Than (>) criteria,
customer_id > 10034
|
void |
addGreaterThanField(java.lang.String attribute,
java.lang.Object value)
Adds Greater Than (>) criteria,
customer_id > person_id
|
void |
addGroupBy(FieldHelper aField)
Deprecated.
use QueryByCriteria#addGroupBy
|
void |
addGroupBy(java.lang.String fieldName)
Deprecated.
use QueryByCriteria#addGroupBy
|
void |
addGroupBy(java.lang.String[] fieldNames)
Deprecated.
use QueryByCriteria#addGroupBy
|
void |
addIn(java.lang.Object attribute,
Query subQuery)
IN Criteria with SubQuery
|
void |
addIn(java.lang.String attribute,
java.util.Collection values)
Adds IN criteria,
customer_id in(1,10,33,44)
large values are split into multiple InCriteria
IN (1,10) OR IN(33, 44)
|
void |
addIsNull(java.lang.String attribute)
Adds is Null criteria,
customer_id is Null
|
void |
addLessOrEqualThan(java.lang.Object attribute,
java.lang.Object value)
Adds LessOrEqual Than (<=) criteria,
customer_id <= 10034
|
void |
addLessOrEqualThanField(java.lang.String attribute,
java.lang.Object value)
Adds LessOrEqual Than (<=) criteria,
customer_id <= person_id
|
void |
addLessThan(java.lang.Object attribute,
java.lang.Object value)
Adds Less Than (<) criteria,
customer_id < 10034
|
void |
addLessThanField(java.lang.String attribute,
java.lang.Object value)
Adds Less Than (<) criteria,
customer_id < person_id
|
void |
addLike(java.lang.Object attribute,
java.lang.Object value)
Adds Like (LIKE) criteria,
customer_name LIKE "m%ller"
|
void |
addNotBetween(java.lang.Object attribute,
java.lang.Object value1,
java.lang.Object value2)
Adds NOT BETWEEN criteria,
customer_id not between 1 and 10
|
void |
addNotEqualTo(java.lang.Object attribute,
java.lang.Object value)
Adds NotEqualTo (<>) criteria,
customer_id <> 10034
|
void |
addNotEqualToColumn(java.lang.String attribute,
java.lang.String colName)
Adds and equals (<>) criteria for column comparison.
|
void |
addNotEqualToField(java.lang.String attribute,
java.lang.String fieldName)
Adds and equals (=) criteria for field comparison.
|
void |
addNotExists(Query subQuery)
Adds a not exists(sub query)
|
void |
addNotIn(java.lang.String attribute,
java.util.Collection values)
Adds NOT IN criteria,
customer_id not in(1,10,33,44)
large values are split into multiple InCriteria
NOT IN (1,10) AND NOT IN(33, 44)
|
void |
addNotIn(java.lang.String attribute,
Query subQuery)
NOT IN Criteria with SubQuery
|
void |
addNotLike(java.lang.String attribute,
java.lang.Object value)
Adds Like (NOT LIKE) criteria,
customer_id NOT LIKE 10034
|
void |
addNotNull(java.lang.String attribute)
Adds not Null criteria,
customer_id is not Null
|
void |
addOrCriteria(Criteria pc)
ORs two sets of criteria together:
|
void |
addOrderBy(FieldHelper aField)
Deprecated.
use QueryByCriteria#addOrderBy
|
void |
addOrderBy(java.lang.String fieldName)
Deprecated.
use #addOrderByAscending(String fieldName)
|
void |
addOrderBy(java.lang.String fieldName,
boolean sortAscending)
Deprecated.
use QueryByCriteria#addOrderBy
|
void |
addOrderByAscending(java.lang.String fieldName)
Deprecated.
use QueryByCriteria#addOrderByAscending
|
void |
addOrderByDescending(java.lang.String fieldName)
Deprecated.
use QueryByCriteria#addOrderByDescending
|
void |
addPathClass(java.lang.String aPath,
java.lang.Class aClass)
Add a hint Class for a path.
|
void |
addPrefetchedRelationship(java.lang.String aName)
Deprecated.
use QueryByCriteria#addPrefetchedRelationship
|
void |
addSql(java.lang.String anSqlStatment)
Adds freeform SQL criteria,
REVERSE(name) like 're%'
|
Criteria |
copy(boolean includeGroupBy,
boolean includeOrderBy,
boolean includePrefetchedRelationships)
make a copy of the criteria
|
java.lang.String |
getAlias() |
java.util.List |
getClassesForPath(java.lang.String aPath)
Get the a List of Class objects used as hints for a path
|
java.util.Enumeration |
getElements()
Get an Enumeration with all sub criteria
|
Criteria |
getParentCriteria() |
java.util.Map |
getPathClasses()
Gets the pathClasses.
|
QueryByCriteria |
getQuery() |
int |
getType()
Answer the type
|
UserAlias |
getUserAlias() |
boolean |
isEmbraced()
ANDed criteria are embraced
|
boolean |
isEmpty()
Answer true if no sub criteria available
|
boolean |
isNegative() |
void |
setAlias(java.lang.String alias)
Sets the alias.
|
void |
setAlias(java.lang.String alias,
java.lang.String aliasPath)
Sets the alias.
|
void |
setAlias(UserAlias userAlias)
Sets the alias using a userAlias object.
|
void |
setEmbraced(boolean embraced)
Set embraced
|
void |
setNegative(boolean negative)
Flags the whole Criteria as negative.
|
void |
setPathClass(java.lang.String aPath,
java.lang.Class aClass)
Set the Class for a path.
|
void |
setType(int type)
Set the type
|
java.lang.String |
toString() |
public static final int OR
public static final int AND
public static final int NONE
public static final java.lang.String PARENT_QUERY_PREFIX
public Criteria()
public Criteria(SelectionCriteria aSelectionCriteria)
aSelectionCriteria - SelectionCriteriapublic Criteria copy(boolean includeGroupBy, boolean includeOrderBy, boolean includePrefetchedRelationships)
includeGroupBy - if trueincludeOrderBy - if tureincludePrefetchedRelationships - if truepublic java.util.Enumeration getElements()
public int getType()
public void setType(int type)
type - OR, AND, NONEpublic boolean isEmbraced()
public void setEmbraced(boolean embraced)
embraced - true if criteria is to be surrounded by bracespublic void addEqualTo(java.lang.String attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - An object representing the value of the fieldpublic void addColumnEqualTo(java.lang.String column,
java.lang.Object value)
column - The column name to be used without translationvalue - An object representing the value of the columnpublic void addColumnEqualToField(java.lang.String column,
java.lang.Object fieldName)
column - The column name to be used without translationfieldName - An object representing the value of the fieldpublic void addEqualToField(java.lang.String attribute,
java.lang.String fieldName)
attribute - The field name to be usedfieldName - The field name to compare withpublic void addNotEqualToField(java.lang.String attribute,
java.lang.String fieldName)
attribute - The field name to be usedfieldName - The field name to compare withpublic void addNotEqualToColumn(java.lang.String attribute,
java.lang.String colName)
attribute - The field name to be usedcolName - The name of the column to compare withpublic void addEqualToColumn(java.lang.String attribute,
java.lang.String colName)
attribute - The field name to be usedcolName - The name of the column to compare withpublic void addGreaterOrEqualThan(java.lang.Object attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - An object representing the value of the fieldpublic void addGreaterOrEqualThanField(java.lang.String attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - The field name to compare withpublic void addLessOrEqualThan(java.lang.Object attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - An object representing the value of the fieldpublic void addLessOrEqualThanField(java.lang.String attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - The field name to compare withpublic void addLike(java.lang.Object attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - An object representing the value of the fieldLikeCriteriapublic void addNotLike(java.lang.String attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - An object representing the value of the fieldLikeCriteriapublic void addNotEqualTo(java.lang.Object attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - An object representing the value of the fieldpublic void addGreaterThan(java.lang.Object attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - An object representing the value of the fieldpublic void addGreaterThanField(java.lang.String attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - The field to compare withpublic void addLessThan(java.lang.Object attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - An object representing the value of the fieldpublic void addLessThanField(java.lang.String attribute,
java.lang.Object value)
attribute - The field name to be usedvalue - The field to compare withpublic void addOrderBy(java.lang.String fieldName)
fieldName - The field name to be usedpublic void addOrderBy(java.lang.String fieldName,
boolean sortAscending)
fieldName - the field name to be usedsortAscending - true for ASCENDING, false for DESCENDINGpublic void addOrderBy(FieldHelper aField)
aField - the Fieldpublic void addOrderByAscending(java.lang.String fieldName)
fieldName - The field name to be usedpublic void addOrderByDescending(java.lang.String fieldName)
fieldName - The field name to be usedpublic void addOrCriteria(Criteria pc)
active = true AND balance < 0 OR active = true AND overdraft = 0
pc - criteriapublic void addIsNull(java.lang.String attribute)
attribute - The field name to be usedpublic void addColumnIsNull(java.lang.String column)
column - The column name to be used without translationpublic void addNotNull(java.lang.String attribute)
attribute - The field name to be usedpublic void addColumnNotNull(java.lang.String column)
column - The column name to be used without translationpublic void addBetween(java.lang.Object attribute,
java.lang.Object value1,
java.lang.Object value2)
attribute - The field name to be usedvalue1 - The lower boundaryvalue2 - The upper boundarypublic void addNotBetween(java.lang.Object attribute,
java.lang.Object value1,
java.lang.Object value2)
attribute - The field name to be usedvalue1 - The lower boundaryvalue2 - The upper boundarypublic void addIn(java.lang.String attribute,
java.util.Collection values)
attribute - The field name to be usedvalues - The value Collectionpublic void addColumnIn(java.lang.String column,
java.util.Collection values)
column - The column name to be used without translationvalues - The value Collectionpublic void addNotIn(java.lang.String attribute,
java.util.Collection values)
attribute - The field name to be usedvalues - The value Collectionpublic void addIn(java.lang.Object attribute,
Query subQuery)
attribute - The field name to be usedsubQuery - The subQuerypublic void addNotIn(java.lang.String attribute,
Query subQuery)
attribute - The field name to be usedsubQuery - The subQuerypublic void addSql(java.lang.String anSqlStatment)
anSqlStatment - The free form SQL-Statementpublic void addAndCriteria(Criteria pc)
pc - criteriapublic void addExists(Query subQuery)
subQuery - sub-querypublic void addNotExists(Query subQuery)
subQuery - sub-querypublic boolean isEmpty()
public void addGroupBy(java.lang.String fieldName)
fieldName - The groupby to setpublic void addGroupBy(FieldHelper aField)
aField - the Fieldpublic void addGroupBy(java.lang.String[] fieldNames)
fieldNames - The groupby to setpublic void addPrefetchedRelationship(java.lang.String aName)
aName - the name of the relationshippublic java.lang.String getAlias()
public UserAlias getUserAlias()
public void setAlias(java.lang.String alias)
alias - The alias to setpublic void setAlias(java.lang.String alias,
java.lang.String aliasPath)
alias - The alias to setaliasPath - The path segment(s) to which the alias appliespublic void setAlias(UserAlias userAlias)
userAlias - The alias to setpublic QueryByCriteria getQuery()
public Criteria getParentCriteria()
public java.lang.String toString()
toString in class java.lang.ObjectObject.toString()public boolean isNegative()
public void setNegative(boolean negative)
negative - The negative to set.public void addPathClass(java.lang.String aPath,
java.lang.Class aClass)
aPath - the path segment ie: allArticlesInGroupaClass - the Class ie: CdArticleQueryTest.testInversePathExpression()public void setPathClass(java.lang.String aPath,
java.lang.Class aClass)
aPath - the path segment ie: allArticlesInGroupaClass - the Class ie: CdArticleQueryTest.testInversePathExpression(),
addPathClass(java.lang.String, java.lang.Class)public java.util.List getClassesForPath(java.lang.String aPath)
aPath - the path segment ie: allArticlesInGroupaddPathClass(java.lang.String, java.lang.Class),
QueryTest.testInversePathExpression()public java.util.Map getPathClasses()
(C) 2002 - 2005 Apache Software Foundation
All rights reserved. Published under the Apache License 2.0.
http://db.apache.org/ojb
Version: 1.0.4, 2005-12-30