Interface QueryDefinition
-
- All Superinterfaces:
PredicateOperand
,Subquery
- All Known Subinterfaces:
DomainObject
- All Known Implementing Classes:
AbstractDomainObject
,EntryExpression
,FetchPath
,JoinPath
,KeyExpression
,OperatorPath
,QueryDefinitionImpl
,RootPath
,ValueExpression
public interface QueryDefinition extends Subquery
Interface for construction of query definitions
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description DomainObject
addRoot(java.lang.Class cls)
Add a query root corresponding to the given entity, forming a cartesian product with any existing roots.DomainObject
addSubqueryRoot(PathExpression path)
Add a root derived from a domain object of the containing query definition to a query definition used as a subquery.Subquery
all()
Use the query definition object in a subquery in an all expression.Subquery
any()
Use the query definition object in a subquery in an any expression.Expression
coalesce(java.lang.String... exp)
coalesce This is equivalent to a case expression that returns null if all its arguments evaluate to null, and the value of its first non-null argument otherwise.Expression
coalesce(java.util.Calendar... exp)
coalesce This is equivalent to a case expression that returns null if all its arguments evaluate to null, and the value of its first non-null argument otherwise.Expression
coalesce(java.util.Date... exp)
coalesce This is equivalent to a case expression that returns null if all its arguments evaluate to null, and the value of its first non-null argument otherwise.Expression
coalesce(Expression... exp)
coalesce This is equivalent to a case expression that returns null if all its arguments evaluate to null, and the value of its first non-null argument otherwise.Expression
currentDate()
Create an Expression corresponding to the current date on the database server at the time of query execution.Expression
currentTime()
Create an Expression corresponding to the current time on the database server at the time of query execution.Expression
currentTimestamp()
Create an Expression corresponding to the current timestamp on the database server at the time of query execution.Predicate
exists()
Use the query definition instance as a subquery in an exists predicate.CaseExpression
generalCase()
Create an empty general case expression.QueryDefinition
groupBy(java.util.List<PathExpression> pathExprList)
Specify the items that are used to form groups over the query results.QueryDefinition
groupBy(PathExpression... pathExprs)
Specify the items that are used to form groups over the query results.QueryDefinition
having(Predicate predicate)
Specify the restrictions over the groups of a query.Expression
literal(boolean b)
Create an Expression corresponding to a boolean value.Expression
literal(char c)
Create an Expression corresponding to a character value.Expression
literal(java.lang.Class cls)
Create an Expression corresponding to an entity class.Expression
literal(java.lang.Enum<?> e)
Create an Expression corresponding to an enum.Expression
literal(java.lang.Number n)
Create an Expression corresponding to a numeric value.Expression
literal(java.lang.String s)
Create an Expression corresponding to a String value.Expression
literal(java.util.Calendar c)
Create an Expression corresponding to a Calendar value.Expression
literal(java.util.Date d)
Create an Expression corresponding to a Date value.SelectItem
newInstance(java.lang.Class cls, SelectItem... args)
Specify that a constructor for the given class is to be applied to the corresponding query results after the query is executed.Expression
nullif(java.lang.Class arg1, java.lang.Class arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.Expression
nullif(java.lang.Enum<?> arg1, java.lang.Enum<?> arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.Expression
nullif(java.lang.Number arg1, java.lang.Number arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.Expression
nullif(java.lang.String arg1, java.lang.String arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.Expression
nullif(java.util.Calendar arg1, java.util.Calendar arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.Expression
nullif(java.util.Date arg1, java.util.Date arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.Expression
nullif(Expression exp1, Expression exp2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.Expression
nullLiteral()
Create an Expression corresponding to a null value.QueryDefinition
orderBy(java.util.List<OrderByItem> orderByItemList)
Specify the items of the select list that are used in ordering the query results.QueryDefinition
orderBy(OrderByItem... orderByItems)
Specify the items of the select list that are used in ordering the query results.Expression
param(java.lang.String name)
Specify use of a parameter of the given name.Predicate
predicate(boolean b)
Create a predicate value from the given boolean.QueryDefinition
select(java.util.List<SelectItem> selectItemList)
Specify the objects / values to be returned.QueryDefinition
select(SelectItem... selectItems)
Specify the objects / values to be returned.QueryDefinition
selectDistinct(java.util.List<SelectItem> selectItemList)
Specify the objects / values to be returned.QueryDefinition
selectDistinct(SelectItem... selectItems)
Specify the objects / values to be returned.CaseExpression
simpleCase(java.lang.Class caseOperand)
Create a simple case expression with the given case operand.CaseExpression
simpleCase(java.lang.Enum<?> caseOperand)
Create a simple case expression with the given case operand.CaseExpression
simpleCase(java.lang.Number caseOperand)
Create a simple case expression with the given case operand.CaseExpression
simpleCase(java.lang.String caseOperand)
Create a simple case expression with the given case operand.CaseExpression
simpleCase(java.util.Calendar caseOperand)
Create a simple case expression with the given case operand.CaseExpression
simpleCase(java.util.Date caseOperand)
Create a simple case expression with the given case operand.CaseExpression
simpleCase(Expression caseOperand)
Create a simple case expression with the given case operand.Subquery
some()
Use the query definition object in a subquery in a some expression.QueryDefinition
where(Predicate predicate)
Modifies the query definition to restrict the result of the query according to the specified predicate.-
Methods inherited from interface org.apache.openjpa.persistence.query.PredicateOperand
between, between, between, between, between, between, between, between, between, between, between, between, between, equal, equal, equal, equal, equal, equal, equal, equal, greaterEqual, greaterEqual, greaterEqual, greaterEqual, greaterEqual, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, lessEqual, lessEqual, lessEqual, lessEqual, lessEqual, lessThan, lessThan, lessThan, lessThan, lessThan, like, like, like, like, like, like, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual
-
-
-
-
Method Detail
-
addRoot
DomainObject addRoot(java.lang.Class cls)
Add a query root corresponding to the given entity, forming a cartesian product with any existing roots. The domain object that is returned is bound as a component of the given query. The argument must be an entity class.- Parameters:
cls
- - an entity class- Returns:
- DomainObject corresponding to the specified entity class.
-
addSubqueryRoot
DomainObject addSubqueryRoot(PathExpression path)
Add a root derived from a domain object of the containing query definition to a query definition used as a subquery. Provides support for correlated subqueries. Joins against the resulting domain object do not affect the query domain of the containing query. The path expression must correspond to an entity class. The path expression must not be a domain object of the containing query.- Parameters:
path
- - path expression corresponding to the domain object used to derive the subquery root.- Returns:
- the subquery DomainObject
-
select
QueryDefinition select(SelectItem... selectItems)
Specify the objects / values to be returned. Replaces the previous select list, if any. If no select items are specified and there is only one query root, the root entity is assumed to be the result.- Parameters:
selectItems
- - one or more SelectItem instances- Returns:
- the modified query definition instance
-
select
QueryDefinition select(java.util.List<SelectItem> selectItemList)
Specify the objects / values to be returned. Replaces the previous select list, if any. If no select items are specified and there is only one query root, the root entity is assumed to be the result.- Parameters:
selectItemList
- - a list containing one or more SelectItem instances- Returns:
- the modified query definition instance
-
selectDistinct
QueryDefinition selectDistinct(SelectItem... selectItems)
Specify the objects / values to be returned. Duplicate results will be eliminated. Replaces the previous select list, if any. If no select items are specified and there is only one query root, the root entity is assumed to be the result.- Parameters:
selectItems
- - one or more SelectItem instances- Returns:
- the modified query definition instance
-
selectDistinct
QueryDefinition selectDistinct(java.util.List<SelectItem> selectItemList)
Specify the objects / values to be returned. Duplicate results will be eliminated. Replaces the previous select list, if any. If no select items are specified, and there is only one query root, the root entity is assumed to be the result. is assumed to be the result.- Parameters:
selectItemList
- - a list containing one or more SelectItem instances- Returns:
- the modified query definition instance
-
where
QueryDefinition where(Predicate predicate)
Modifies the query definition to restrict the result of the query according to the specified predicate. Replaces the previously added restriction(s), if any.- Parameters:
predicate
- - a simple or compound conditional predicate- Returns:
- the modified QueryDefinition instance
-
orderBy
QueryDefinition orderBy(OrderByItem... orderByItems)
Specify the items of the select list that are used in ordering the query results. Replaces the previous order-by list, if any.- Parameters:
orderByItems
- - one or more OrderByItem instances- Returns:
- the modified QueryDefinition instance
-
orderBy
QueryDefinition orderBy(java.util.List<OrderByItem> orderByItemList)
Specify the items of the select list that are used in ordering the query results. Replaces the previous order-by list, if any.- Parameters:
orderByItemList
- - a list containing one or more OrderByItem instances- Returns:
- the modified QueryDefinition instance
-
groupBy
QueryDefinition groupBy(PathExpression... pathExprs)
Specify the items that are used to form groups over the query results. Replaces the previous group-by list, if any.- Parameters:
pathExprs
-- Returns:
- the modified QueryDefinition instance
-
groupBy
QueryDefinition groupBy(java.util.List<PathExpression> pathExprList)
Specify the items that are used to form groups over the query results. Replaces the previous group-by list, if any.- Parameters:
pathExprList
-- Returns:
- the modified QueryDefinition instance
-
having
QueryDefinition having(Predicate predicate)
Specify the restrictions over the groups of a query. Replaces the previous having restriction(s), if any.- Parameters:
predicate
-- Returns:
- the modified QueryDefinition Instance
-
newInstance
SelectItem newInstance(java.lang.Class cls, SelectItem... args)
Specify that a constructor for the given class is to be applied to the corresponding query results after the query is executed. The class must have a constructor that accepts the Java argument types corresponding to the given select items.- Parameters:
cls
- - a class with the correponding constructorargs
- - select items that correspond to result types that are valid as arguments to the constructor
-
exists
Predicate exists()
Use the query definition instance as a subquery in an exists predicate.- Returns:
- the resulting predicate
-
all
Subquery all()
Use the query definition object in a subquery in an all expression.- Returns:
- the resulting Subquery
-
any
Subquery any()
Use the query definition object in a subquery in an any expression.- Returns:
- the resulting Subquery
-
some
Subquery some()
Use the query definition object in a subquery in a some expression.- Returns:
- the resulting Subquery
-
generalCase
CaseExpression generalCase()
Create an empty general case expression. A general case expression is of the form: generalCase() .when(conditional-predicate).then(scalar-expression) .when(conditional-predicate).then(scalar-expression) ... .elseCase(scalar-expression)- Returns:
- empty general case expression
-
simpleCase
CaseExpression simpleCase(Expression caseOperand)
Create a simple case expression with the given case operand. A simple case expression is of the form: simpleCase(case-operand) .when(scalar-expression).then(scalar-expression) .when(scalar-expression).then(scalar-expression) ... .elseCase(scalar-expression)- Parameters:
caseOperand
- - expression used for testing against the when scalar expressions- Returns:
- case expression with the given case operand
-
simpleCase
CaseExpression simpleCase(java.lang.Number caseOperand)
Create a simple case expression with the given case operand. A simple case expression is of the form: simpleCase(case-operand) .when(scalar-expression).then(scalar-expression) .when(scalar-expression).then(scalar-expression) ... .elseCase(scalar-expression)- Parameters:
caseOperand
- - numeric value used for testing against the when scalar expressions- Returns:
- case expression with the given case operand
-
simpleCase
CaseExpression simpleCase(java.lang.String caseOperand)
Create a simple case expression with the given case operand. A simple case expression is of the form: simpleCase(case-operand) .when(scalar-expression).then(scalar-expression) .when(scalar-expression).then(scalar-expression) ... .elseCase(scalar-expression)- Parameters:
caseOperand
- - value used for testing against the when scalar expressions- Returns:
- case expression with the given case operand
-
simpleCase
CaseExpression simpleCase(java.util.Date caseOperand)
Create a simple case expression with the given case operand. A simple case expression is of the form: simpleCase(case-operand) .when(scalar-expression).then(scalar-expression) .when(scalar-expression).then(scalar-expression) ... .elseCase(scalar-expression)- Parameters:
caseOperand
- - value used for testing against the when scalar expressions- Returns:
- case expression with the given case operand
-
simpleCase
CaseExpression simpleCase(java.util.Calendar caseOperand)
Create a simple case expression with the given case operand. A simple case expression is of the form: simpleCase(case-operand) .when(scalar-expression).then(scalar-expression) .when(scalar-expression).then(scalar-expression) ... .elseCase(scalar-expression)- Parameters:
caseOperand
- - value used for testing against the when scalar expressions- Returns:
- case expression with the given case operand
-
simpleCase
CaseExpression simpleCase(java.lang.Class caseOperand)
Create a simple case expression with the given case operand. A simple case expression is of the form: simpleCase(case-operand) .when(scalar-expression).then(scalar-expression) .when(scalar-expression).then(scalar-expression) ... .elseCase(scalar-expression)- Parameters:
caseOperand
- - value used for testing against the when scalar expressions- Returns:
- case expression with the given case operand
-
simpleCase
CaseExpression simpleCase(java.lang.Enum<?> caseOperand)
Create a simple case expression with the given case operand. A simple case expression is of the form: simpleCase(case-operand) .when(scalar-expression).then(scalar-expression) .when(scalar-expression).then(scalar-expression) ... .elseCase(scalar-expression)- Parameters:
caseOperand
- - value used for testing against the when scalar expressions- Returns:
- case expression with the given case operand
-
coalesce
Expression coalesce(Expression... exp)
coalesce This is equivalent to a case expression that returns null if all its arguments evaluate to null, and the value of its first non-null argument otherwise.- Parameters:
exp
- - expressions to be used for testing against null- Returns:
- Expression corresponding to the given coalesce expression
-
coalesce
Expression coalesce(java.lang.String... exp)
coalesce This is equivalent to a case expression that returns null if all its arguments evaluate to null, and the value of its first non-null argument otherwise.- Parameters:
exp
- - expressions to be used for testing against null- Returns:
- Expression corresponding to the given coalesce expression
-
coalesce
Expression coalesce(java.util.Date... exp)
coalesce This is equivalent to a case expression that returns null if all its arguments evaluate to null, and the value of its first non-null argument otherwise.- Parameters:
exp
- - expressions to be used for testing against null- Returns:
- Expression corresponding to the given coalesce expression
-
coalesce
Expression coalesce(java.util.Calendar... exp)
coalesce This is equivalent to a case expression that returns null if all its arguments evaluate to null, and the value of its first non-null argument otherwise.- Parameters:
exp
- - expressions to be used for testing against null- Returns:
- Expression corresponding to the given coalesce expression
-
nullif
Expression nullif(Expression exp1, Expression exp2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.- Parameters:
exp1
-exp2
-- Returns:
- Expression corresponding to the given nullif expression
-
nullif
Expression nullif(java.lang.Number arg1, java.lang.Number arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.- Parameters:
arg1
-arg2
-- Returns:
- Expression corresponding to the given nullif expression
-
nullif
Expression nullif(java.lang.String arg1, java.lang.String arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.- Parameters:
arg1
-arg2
- Criteria API Java Persistence 2.0, Public Review Draft Criteria API Interfaces 10/31/08 158 JSR-317 Public Review Draft Sun Microsystems, Inc.- Returns:
- Expression corresponding to the given nullif expression
-
nullif
Expression nullif(java.util.Date arg1, java.util.Date arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.- Parameters:
arg1
-arg2
-- Returns:
- Expression corresponding to the given nullif expression
-
nullif
Expression nullif(java.util.Calendar arg1, java.util.Calendar arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.- Parameters:
arg1
-arg2
-- Returns:
- Expression corresponding to the given nullif expression
-
nullif
Expression nullif(java.lang.Class arg1, java.lang.Class arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.- Parameters:
arg1
-arg2
-- Returns:
- Expression corresponding to the given nullif expression
-
nullif
Expression nullif(java.lang.Enum<?> arg1, java.lang.Enum<?> arg2)
nullif This is equivalent to a case expression that tests whether its arguments are equal, returning null if they are and the value of the first expression if they are not.- Parameters:
arg1
-arg2
-- Returns:
- Expression corresponding to the given nullif expression
-
predicate
Predicate predicate(boolean b)
Create a predicate value from the given boolean.- Parameters:
b
- boolean value- Returns:
- a true or false predicate
-
currentTime
Expression currentTime()
Create an Expression corresponding to the current time on the database server at the time of query execution.- Returns:
- the corresponding Expression
-
currentDate
Expression currentDate()
Create an Expression corresponding to the current date on the database server at the time of query execution.- Returns:
- the corresponding Expression
-
currentTimestamp
Expression currentTimestamp()
Create an Expression corresponding to the current timestamp on the database server at the time of query execution.- Returns:
- the corresponding Expression
-
literal
Expression literal(java.lang.String s)
Create an Expression corresponding to a String value.- Parameters:
s
- - string value- Returns:
- the corresponding Expression literal
-
literal
Expression literal(java.lang.Number n)
Create an Expression corresponding to a numeric value.- Parameters:
n
- - numeric value- Returns:
- the corresponding Expression literal
-
literal
Expression literal(boolean b)
Create an Expression corresponding to a boolean value.- Parameters:
b
- - boolean value- Returns:
- the corresponding Expression literal
-
literal
Expression literal(java.util.Calendar c)
Create an Expression corresponding to a Calendar value.- Parameters:
c
- - Calendar value- Returns:
- the corresponding Expression literal
-
literal
Expression literal(java.util.Date d)
Create an Expression corresponding to a Date value.- Parameters:
d
- - Date value- Returns:
- the corresponding Expression literal
-
literal
Expression literal(char c)
Create an Expression corresponding to a character value.- Parameters:
character
- value- Returns:
- the corresponding Expression literal
-
literal
Expression literal(java.lang.Class cls)
Create an Expression corresponding to an entity class.- Parameters:
cls
- - entity class- Returns:
- the corresponding Expression literal
-
literal
Expression literal(java.lang.Enum<?> e)
Create an Expression corresponding to an enum.- Parameters:
e
- - enum- Returns:
- the corresponding Expression literal
-
nullLiteral
Expression nullLiteral()
Create an Expression corresponding to a null value.- Returns:
- the corresponding Expression literal
-
param
Expression param(java.lang.String name)
Specify use of a parameter of the given name.- Parameters:
parameter
- name- Returns:
- an Expression corresponding to a named parameter
-
-