|
|||||||||
| Home >> All >> org >> apache >> ojb >> broker >> [ query overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.apache.ojb.broker.query
Class Criteria

java.lang.Objectorg.apache.ojb.broker.query.Criteria
- All Implemented Interfaces:
- java.io.Serializable
- public class Criteria
- extends java.lang.Object
- implements java.io.Serializable
- extends java.lang.Object
Persistent Criteria can be used to retrieve sets of objects based on their attributes Normally each attribute is ANDed together, an OR can be performed by creating a new PersistentCriteria and adding it.
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
| Field Summary | |
static int |
AND
|
private java.util.Vector |
criteria
|
private boolean |
embraced
|
private java.util.List |
groupby
|
protected static int |
IN_LIMIT
|
static int |
NONE
|
static int |
OR
|
private java.util.List |
orderby
|
private java.util.List |
prefetchedRelationships
|
private int |
type
|
| Constructor Summary | |
Criteria()
Constructor declaration |
|
Criteria(SelectionCriteria aSelectionCriteria)
Constructor with a SelectionCriteria * @param aSelectionCriteria |
|
| Method Summary | |
protected java.util.List |
_getGroupby()
Gets the groupby for ReportQueries, the elements are of class Criteria.FieldHelper |
protected java.util.List |
_getOrderby()
Answer the Vector with all orderBy, the elements are of class Criteria.FieldHelper |
void |
addAndCriteria(Criteria pc)
ANDs two sets of criteria together: |
void |
addBetween(java.lang.String attribute,
java.lang.Object value1,
java.lang.Object value2)
Adds BETWEEN criteria, customer_id between 1 and 10 |
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.String 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.String 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(org.apache.ojb.broker.metadata.FieldHelper aField)
Adds a field for groupby |
void |
addGroupBy(java.lang.String fieldName)
Adds a groupby fieldName for ReportQueries. |
void |
addGroupBy(java.lang.String[] fieldNames)
Adds an array of groupby fieldNames for ReportQueries. |
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 |
addIn(java.lang.String attribute,
Query subQuery)
IN Criteria with SubQuery * @param attribute * @param subQuery |
void |
addIsNull(java.lang.String attribute)
Adds is Null criteria, customer_id is Null |
void |
addLessOrEqualThan(java.lang.String 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.String 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.String attribute,
java.lang.Object value)
Adds Like (LIKE) criteria, customer_name LIKE "m%ller" Where Value is a string simple pattern matching can be used, the character * is a wildcard, e.g. |
void |
addNotBetween(java.lang.String attribute,
java.lang.Object value1,
java.lang.Object value2)
Adds NOT BETWEEN criteria, customer_id not between 1 and 10 |
void |
addNotEqualTo(java.lang.String 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(org.apache.ojb.broker.metadata.FieldHelper aField)
Adds a field for orderBy |
void |
addOrderBy(java.lang.String fieldName)
Deprecated. use #addOrderByAscending(String fieldName) |
void |
addOrderBy(java.lang.String fieldName,
boolean sortAscending)
Adds a field for orderBy |
void |
addOrderByAscending(java.lang.String fieldName)
Adds a field for orderBy ASCENDING |
void |
addOrderByDescending(java.lang.String fieldName)
Adds a field for orderBy DESCENDING |
void |
addPrefetchedRelationship(java.lang.String aName)
add the name of aRelationship for prefetch read |
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 |
protected java.lang.String |
generateSQLSearchPattern(java.lang.String pattern)
Generate a SQL search string from the pattern string passed. |
protected java.util.Vector |
getCriteria()
Get a Vector with all sub criteria |
java.util.Enumeration |
getElements()
Get an Enumeration with all sub criteria |
java.util.List |
getGroupby()
Gets the groupby for ReportQueries of all Criteria and Sub Criteria the elements are of class Criteria. |
java.util.List |
getOrderby()
Answer the orderBy of all Criteria and Sub Criteria the elements are of class Criteria. |
java.util.List |
getPrefetchedRelationships()
Returns the prefetchedRelationships. |
private static int |
getSqlInLimit()
read the prefetchInLimit from Config based on OJB.properties |
int |
getType()
Answer the type |
void |
groupBy(java.lang.String fieldName)
Deprecated. use #addGroupBy(String fieldName) |
void |
groupBy(java.lang.String[] fieldNames)
Deprecated. use #addGroupBy(String[] fieldNames) |
boolean |
isEmbraced()
Answer true if embraced, ANDed criteria are embraced |
boolean |
isEmpty()
Answer true if no sub criteria available |
void |
orderBy(java.lang.String fieldName)
Deprecated. use #addOrderByAscending(String fieldName) |
void |
orderBy(java.lang.String fieldName,
boolean sortAscending)
Deprecated. use #addOrderByAscending(String fieldName) or #addOrderByDescending(String fieldName) |
void |
setEmbraced(boolean embraced)
Set embraced |
void |
setType(int type)
Set the type |
protected java.util.List |
splitInCriteria(java.lang.String attribute,
java.util.Collection values,
boolean negative,
int inLimit)
Answer a List of InCriteria based on values, each InCriteria contains only inLimit values * @param attribute * @param values * @param negative * @param inLimit the maximum number of values for IN (-1 for no limit) |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
OR
public static final int OR
- See Also:
- Constant Field Values
AND
public static final int AND
- See Also:
- Constant Field Values
NONE
public static final int NONE
- See Also:
- Constant Field Values
criteria
private java.util.Vector criteria
type
private int type
embraced
private boolean embraced
orderby
private java.util.List orderby
groupby
private java.util.List groupby
prefetchedRelationships
private java.util.List prefetchedRelationships
IN_LIMIT
protected static final int IN_LIMIT
| Constructor Detail |
Criteria
public Criteria()
- Constructor declaration
Criteria
public Criteria(SelectionCriteria aSelectionCriteria)
- Constructor with a SelectionCriteria
* @param aSelectionCriteria
| Method Detail |
copy
public Criteria copy(boolean includeGroupBy, boolean includeOrderBy, boolean includePrefetchedRelationships)
- make a copy of the criteria
splitInCriteria
protected java.util.List splitInCriteria(java.lang.String attribute, java.util.Collection values, boolean negative, int inLimit)
- Answer a List of InCriteria based on values, each InCriteria
contains only inLimit values
* @param attribute
* @param values
* @param negative
* @param inLimit the maximum number of values for IN (-1 for no limit)
getElements
public java.util.Enumeration getElements()
- Get an Enumeration with all sub criteria
getCriteria
protected java.util.Vector getCriteria()
- Get a Vector with all sub criteria
getType
public int getType()
- Answer the type
setType
public void setType(int type)
- Set the type
isEmbraced
public boolean isEmbraced()
- Answer true if embraced,
ANDed criteria are embraced
setEmbraced
public void setEmbraced(boolean embraced)
- Set embraced
addEqualTo
public void addEqualTo(java.lang.String attribute, java.lang.Object value)
- Adds and equals (=) criteria,
customer_id = 10034
generateSQLSearchPattern
protected java.lang.String generateSQLSearchPattern(java.lang.String pattern)
- Generate a SQL search string from the pattern string passed.
The pattern string is a simple pattern string using * as a wildcard.
So Ander* would match Anderson and Anderton.
The ? character is used to match a single occurence of a character.
The '\' is used to escape the wild card characters so that we
can search for strings containing * and ?.
This method converts the criteria wildcard strings to SQL wildcards.
addEqualToField
public void addEqualToField(java.lang.String attribute, java.lang.String fieldName)
- Adds and equals (=) criteria for field comparison.
The field name will be translated into the appropriate columnName by SqlStatement.
name = boss.name
addNotEqualToField
public void addNotEqualToField(java.lang.String attribute, java.lang.String fieldName)
- Adds and equals (=) criteria for field comparison.
The field name will be translated into the appropriate columnName by SqlStatement.
name <> boss.name
addNotEqualToColumn
public void addNotEqualToColumn(java.lang.String attribute, java.lang.String colName)
- Adds and equals (<>) criteria for column comparison.
The column Name will NOT be translated.
name <> T_BOSS.LASTNMAE
addEqualToColumn
public void addEqualToColumn(java.lang.String attribute, java.lang.String colName)
- Adds and equals (=) criteria for column comparison.
The column Name will NOT be translated.
name = T_BOSS.LASTNMAE
addGreaterOrEqualThan
public void addGreaterOrEqualThan(java.lang.String attribute, java.lang.Object value)
- Adds GreaterOrEqual Than (>=) criteria,
customer_id >= 10034
addGreaterOrEqualThanField
public void addGreaterOrEqualThanField(java.lang.String attribute, java.lang.Object value)
- Adds GreaterOrEqual Than (>=) criteria,
customer_id >= person_id
addLessOrEqualThan
public void addLessOrEqualThan(java.lang.String attribute, java.lang.Object value)
- Adds LessOrEqual Than (<=) criteria,
customer_id <= 10034
addLessOrEqualThanField
public void addLessOrEqualThanField(java.lang.String attribute, java.lang.Object value)
- Adds LessOrEqual Than (<=) criteria,
customer_id <= person_id
addLike
public void addLike(java.lang.String attribute, java.lang.Object value)
- Adds Like (LIKE) criteria,
customer_name LIKE "m%ller"
Where Value is a string simple pattern matching can be used, the
character * is a wildcard, e.g.
customer_name = Ander*
Would match the customers: Anderson and Anderton. The character ? matches a single occurence of a character. The '\' character is used as an escape character and allow searching for strings containing * or ?. So in order to search for Ander* - use Ander\*.
addNotLike
public void addNotLike(java.lang.String attribute, java.lang.Object value)
- Adds Like (NOT LIKE) criteria,
customer_id NOT LIKE 10034
addNotEqualTo
public void addNotEqualTo(java.lang.String attribute, java.lang.Object value)
- Adds NotEqualTo (<>) criteria,
customer_id <> 10034
addGreaterThan
public void addGreaterThan(java.lang.String attribute, java.lang.Object value)
- Adds Greater Than (>) criteria,
customer_id > 10034
addGreaterThanField
public void addGreaterThanField(java.lang.String attribute, java.lang.Object value)
- Adds Greater Than (>) criteria,
customer_id > person_id
addLessThan
public void addLessThan(java.lang.String attribute, java.lang.Object value)
- Adds Less Than (<) criteria,
customer_id < 10034
addLessThanField
public void addLessThanField(java.lang.String attribute, java.lang.Object value)
- Adds Less Than (<) criteria,
customer_id < person_id
addOrderBy
public void addOrderBy(java.lang.String fieldName)
- Deprecated. use #addOrderByAscending(String fieldName)
- Adds a field for orderBy, order is ASCENDING
- Adds a field for orderBy, order is ASCENDING
addOrderBy
public void addOrderBy(java.lang.String fieldName, boolean sortAscending)
- Adds a field for orderBy
addOrderBy
public void addOrderBy(org.apache.ojb.broker.metadata.FieldHelper aField)
- Adds a field for orderBy
addOrderByAscending
public void addOrderByAscending(java.lang.String fieldName)
- Adds a field for orderBy ASCENDING
addOrderByDescending
public void addOrderByDescending(java.lang.String fieldName)
- Adds a field for orderBy DESCENDING
orderBy
public void orderBy(java.lang.String fieldName)
- Deprecated. use #addOrderByAscending(String fieldName)
- Sets the single field for orderBy, order is ASCENDING
- Sets the single field for orderBy, order is ASCENDING
orderBy
public void orderBy(java.lang.String fieldName, boolean sortAscending)
- Deprecated. use #addOrderByAscending(String fieldName) or #addOrderByDescending(String fieldName)
- Sets the single field for orderBy
- Sets the single field for orderBy
getOrderby
public java.util.List getOrderby()
- Answer the orderBy of all Criteria and Sub Criteria the elements are of
class Criteria. FieldHelper
_getOrderby
protected java.util.List _getOrderby()
- Answer the Vector with all orderBy,
the elements are of class Criteria.FieldHelper
addOrCriteria
public void addOrCriteria(Criteria pc)
- ORs two sets of criteria together:
active = true AND balance < 0 OR active = true AND overdraft = 0
addIsNull
public void addIsNull(java.lang.String attribute)
- Adds is Null criteria,
customer_id is Null
addNotNull
public void addNotNull(java.lang.String attribute)
- Adds not Null criteria,
customer_id is not Null
addBetween
public void addBetween(java.lang.String attribute, java.lang.Object value1, java.lang.Object value2)
- Adds BETWEEN criteria,
customer_id between 1 and 10
addNotBetween
public void addNotBetween(java.lang.String attribute, java.lang.Object value1, java.lang.Object value2)
- Adds NOT BETWEEN criteria,
customer_id not between 1 and 10
addIn
public 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)
addNotIn
public 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)
addIn
public void addIn(java.lang.String attribute, Query subQuery)
- IN Criteria with SubQuery
* @param attribute
* @param subQuery
addNotIn
public void addNotIn(java.lang.String attribute, Query subQuery)
- NOT IN Criteria with SubQuery
addSql
public void addSql(java.lang.String anSqlStatment)
- Adds freeform SQL criteria,
REVERSE(name) like 're%'
addAndCriteria
public void addAndCriteria(Criteria pc)
- ANDs two sets of criteria together:
addExists
public void addExists(Query subQuery)
- Adds an exists(sub query)
addNotExists
public void addNotExists(Query subQuery)
- Adds a not exists(sub query)
isEmpty
public boolean isEmpty()
- Answer true if no sub criteria available
getGroupby
public java.util.List getGroupby()
- Gets the groupby for ReportQueries of all Criteria and Sub Criteria
the elements are of class Criteria. FieldHelper
_getGroupby
protected java.util.List _getGroupby()
- Gets the groupby for ReportQueries,
the elements are of class Criteria.FieldHelper
addGroupBy
public void addGroupBy(java.lang.String fieldName)
- Adds a groupby fieldName for ReportQueries.
addGroupBy
public void addGroupBy(org.apache.ojb.broker.metadata.FieldHelper aField)
- Adds a field for groupby
groupBy
public void groupBy(java.lang.String[] fieldNames)
- Deprecated. use #addGroupBy(String[] fieldNames)
- Sets an array of groupby fieldNames for ReportQueries.
- Sets an array of groupby fieldNames for ReportQueries.
addGroupBy
public void addGroupBy(java.lang.String[] fieldNames)
- Adds an array of groupby fieldNames for ReportQueries.
groupBy
public void groupBy(java.lang.String fieldName)
- Deprecated. use #addGroupBy(String fieldName)
- Sets the single groupby fieldName for ReportQueries.
- Sets the single groupby fieldName for ReportQueries.
getPrefetchedRelationships
public java.util.List getPrefetchedRelationships()
- Returns the prefetchedRelationships.
addPrefetchedRelationship
public void addPrefetchedRelationship(java.lang.String aName)
- add the name of aRelationship for prefetch read
getSqlInLimit
private static int getSqlInLimit()
- read the prefetchInLimit from Config based on OJB.properties
|
|||||||||
| Home >> All >> org >> apache >> ojb >> broker >> [ query overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
org.apache.ojb.broker.query.Criteria