Package org.datanucleus.api.jdo
Class JDOQuery<T>
- java.lang.Object
-
- org.datanucleus.api.jdo.JDOQuery<T>
-
- Type Parameters:
T- Candidate class for this query
- All Implemented Interfaces:
Serializable,AutoCloseable,javax.jdo.Query<T>
public class JDOQuery<T> extends Object implements javax.jdo.Query<T>
Wrapper for JDO Query class. Stores the PM the query is executed against, the internal query, and the query language. The language is stored since it is referenced by the JDO API and so we don't have to embody knowledge of which internal query type is for which language (could be moved to the internal query).- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringJDOQL_QUERY_LANGUAGEstatic StringJPQL_QUERY_LANGUAGEstatic StringPROPERTY_CLOSEABLE_QUERYstatic StringSQL_QUERY_LANGUAGE
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddExtension(String key, Object value)Method to add an extension to the query.voidaddSubquery(javax.jdo.Query sub, String variableDecl, String candidateExpr)Add a subquery to this query.voidaddSubquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, String parameter)Add a subquery to this query.voidaddSubquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, String... parameters)Add a subquery to this query.voidaddSubquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, Map parameters)Add a subquery to this query.protected voidassertIsOpen()Method to assert if this Query is open.voidcancel(Thread thr)Method to cancel the executing query for the supplied thread.voidcancelAll()Method to cancel any executing queries.voidclose()voidclose(Object queryResult)Close the query result.voidcloseAll()Close all query results for this query.voidcompile()Compile the query.javax.jdo.Query<T>datastoreReadTimeoutMillis(Integer interval)javax.jdo.Query<T>datastoreWriteTimeoutMillis(Integer interval)voiddeclareImports(String imports)Declare any imports for the query.voiddeclareParameters(String parameters)Declare any parameters for the query.voiddeclareVariables(String variables)Declare any variables for the query.longdeletePersistentAll()Execute the query deleting all instances found.longdeletePersistentAll(Object... parameters)Execute the query deleting all instances found.longdeletePersistentAll(Map parameters)Execute the query deleting all instances found.protected longdeletePersistentInternal()Objectexecute()Execute the query.Objectexecute(Object p1)Execute the query.Objectexecute(Object p1, Object p2)Execute the query.Objectexecute(Object p1, Object p2, Object p3)Execute the query.protected ObjectexecuteInternal()List<T>executeList()List<Object>executeResultList()<R> List<R>executeResultList(Class<R> resultCls)ObjectexecuteResultUnique()<R> RexecuteResultUnique(Class<R> resultCls)TexecuteUnique()ObjectexecuteWithArray(Object... parameterValues)Execute the query.ObjectexecuteWithMap(Map parameters)Execute the query.javax.jdo.Query<T>extension(String key, Object value)javax.jdo.Query<T>extensions(Map values)javax.jdo.Query<T>filter(String filter)IntegergetDatastoreReadTimeoutMillis()Accessor for the datastore read timeout.IntegergetDatastoreWriteTimeoutMillis()Accessor for the datastore write timeout.javax.jdo.FetchPlangetFetchPlan()Accessor for the fetch plan to use.booleangetIgnoreCache()Accessor for the ignore cache settingorg.datanucleus.store.query.Query<T>getInternalQuery()Accessor for the internal query.StringgetLanguage()Accessor for the query language.ObjectgetNativeQuery()Accessor for the native query invoked by this query (if known at this time and supported by the store plugin).javax.jdo.PersistenceManagergetPersistenceManager()Accessor for the PersistenceManager.BooleangetSerializeRead()Accessor for whether to serialise any read objects in this query.javax.jdo.Query<T>groupBy(String grouping)javax.jdo.Query<T>ignoreCache(boolean flag)javax.jdo.Query<T>imports(String imports)booleanisClosed()Accessor for whether this Query is closed.booleanisUnmodifiable()Accessor for whether the query is modifiable.javax.jdo.Query<T>orderBy(String ordering)javax.jdo.Query<T>parameters(String parameters)javax.jdo.Query<T>range(long fromIncl, long toExcl)javax.jdo.Query<T>range(String range)javax.jdo.Query<T>result(String result)javax.jdo.Query<T>saveAsNamedQuery(String name)Save this query as a named query with the specified name.javax.jdo.Query<T>serializeRead(Boolean serialize)voidsetCandidates(Collection<T> pcs)Set the candidates for the query.voidsetCandidates(javax.jdo.Extent<T> extent)Set the candidates for the query.voidsetClass(Class<T> candidateClass)Set the candidate class for the query.voidsetDatastoreReadTimeoutMillis(Integer timeout)Set the datastore read timeout.voidsetDatastoreWriteTimeoutMillis(Integer timeout)Set the datastore write timeout.voidsetExtensions(Map extensions)Set the extensions for the query.voidsetFilter(String filter)Set the filter for the query.voidsetGrouping(String grouping)Set the grouping for the query.voidsetIgnoreCache(boolean ignoreCache)Set the ignore cache setting for the query.javax.jdo.Query<T>setNamedParameters(Map<String,?> paramMap)voidsetOrdering(String ordering)Set the ordering for the query.javax.jdo.Query<T>setParameters(Object... paramValues)voidsetRange(long fromIncl, long toExcl)Set the range for the query.voidsetRange(String range)Set the range for the query.voidsetResult(String result)Set the result for the query.voidsetResultClass(Class result_cls)Set the result class for the query.voidsetSerializeRead(Boolean serialize)Mutator for whether to serialise any read objects.voidsetUnique(boolean unique)Set whether to expect a unique result.voidsetUnmodifiable()Set the query to be unmodifiable.javax.jdo.Query<T>subquery(javax.jdo.Query sub, String variableDecl, String candidateExpr)javax.jdo.Query<T>subquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, String parameter)javax.jdo.Query<T>subquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, String... parameters)javax.jdo.Query<T>subquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, Map parameters)StringtoString()Convenience method to return the query in string form.javax.jdo.Query<T>unmodifiable()javax.jdo.Query<T>variables(String variables)
-
-
-
Field Detail
-
PROPERTY_CLOSEABLE_QUERY
public static final String PROPERTY_CLOSEABLE_QUERY
- See Also:
- Constant Field Values
-
JDOQL_QUERY_LANGUAGE
public static final String JDOQL_QUERY_LANGUAGE
- See Also:
- Constant Field Values
-
JPQL_QUERY_LANGUAGE
public static final String JPQL_QUERY_LANGUAGE
- See Also:
- Constant Field Values
-
SQL_QUERY_LANGUAGE
public static final String SQL_QUERY_LANGUAGE
- See Also:
- Constant Field Values
-
-
Method Detail
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfacejavax.jdo.Query<T>
-
isClosed
public boolean isClosed()
Accessor for whether this Query is closed.- Returns:
- Whether this Query is closed.
-
close
public void close(Object queryResult)
Close the query result.- Specified by:
closein interfacejavax.jdo.Query<T>- Parameters:
queryResult- Query result
-
closeAll
public void closeAll()
Close all query results for this query.- Specified by:
closeAllin interfacejavax.jdo.Query<T>
-
compile
public void compile()
Compile the query.- Specified by:
compilein interfacejavax.jdo.Query<T>
-
declareImports
public void declareImports(String imports)
Declare any imports for the query.- Specified by:
declareImportsin interfacejavax.jdo.Query<T>- Parameters:
imports- The imports
-
declareParameters
public void declareParameters(String parameters)
Declare any parameters for the query.- Specified by:
declareParametersin interfacejavax.jdo.Query<T>- Parameters:
parameters- The parameters
-
declareVariables
public void declareVariables(String variables)
Declare any variables for the query.- Specified by:
declareVariablesin interfacejavax.jdo.Query<T>- Parameters:
variables- The variables
-
imports
public javax.jdo.Query<T> imports(String imports)
- Specified by:
importsin interfacejavax.jdo.Query<T>
-
parameters
public javax.jdo.Query<T> parameters(String parameters)
- Specified by:
parametersin interfacejavax.jdo.Query<T>
-
variables
public javax.jdo.Query<T> variables(String variables)
- Specified by:
variablesin interfacejavax.jdo.Query<T>
-
setParameters
public javax.jdo.Query<T> setParameters(Object... paramValues)
- Specified by:
setParametersin interfacejavax.jdo.Query<T>
-
setNamedParameters
public javax.jdo.Query<T> setNamedParameters(Map<String,?> paramMap)
- Specified by:
setNamedParametersin interfacejavax.jdo.Query<T>
-
execute
public Object execute()
Execute the query.- Specified by:
executein interfacejavax.jdo.Query<T>- Returns:
- The results
-
execute
public Object execute(Object p1)
Execute the query.- Specified by:
executein interfacejavax.jdo.Query<T>- Parameters:
p1- First param value- Returns:
- The results
-
execute
public Object execute(Object p1, Object p2)
Execute the query.- Specified by:
executein interfacejavax.jdo.Query<T>- Parameters:
p1- First param valuep2- Second param value- Returns:
- The results
-
execute
public Object execute(Object p1, Object p2, Object p3)
Execute the query.- Specified by:
executein interfacejavax.jdo.Query<T>- Parameters:
p1- First param valuep2- Second param valuep3- Third param value- Returns:
- The results
-
executeWithArray
public Object executeWithArray(Object... parameterValues)
Execute the query.- Specified by:
executeWithArrayin interfacejavax.jdo.Query<T>- Parameters:
parameterValues- Param values- Returns:
- The results
-
executeWithMap
public Object executeWithMap(Map parameters)
Execute the query.- Specified by:
executeWithMapin interfacejavax.jdo.Query<T>- Parameters:
parameters- Param values- Returns:
- The results
-
executeResultList
public <R> List<R> executeResultList(Class<R> resultCls)
- Specified by:
executeResultListin interfacejavax.jdo.Query<T>
-
executeResultUnique
public <R> R executeResultUnique(Class<R> resultCls)
- Specified by:
executeResultUniquein interfacejavax.jdo.Query<T>
-
executeResultList
public List<Object> executeResultList()
- Specified by:
executeResultListin interfacejavax.jdo.Query<T>
-
executeResultUnique
public Object executeResultUnique()
- Specified by:
executeResultUniquein interfacejavax.jdo.Query<T>
-
executeInternal
protected Object executeInternal()
-
deletePersistentAll
public long deletePersistentAll()
Execute the query deleting all instances found.- Specified by:
deletePersistentAllin interfacejavax.jdo.Query<T>- Returns:
- Number of deleted instances
-
deletePersistentAll
public long deletePersistentAll(Object... parameters)
Execute the query deleting all instances found.- Specified by:
deletePersistentAllin interfacejavax.jdo.Query<T>- Parameters:
parameters- Parameters to use when executing- Returns:
- Number of deleted instances
-
deletePersistentAll
public long deletePersistentAll(Map parameters)
Execute the query deleting all instances found.- Specified by:
deletePersistentAllin interfacejavax.jdo.Query<T>- Parameters:
parameters- Parameters to use when executing- Returns:
- Number of deleted instances
-
deletePersistentInternal
protected long deletePersistentInternal()
-
cancelAll
public void cancelAll()
Method to cancel any executing queries.- Specified by:
cancelAllin interfacejavax.jdo.Query<T>- Throws:
javax.jdo.JDOUnsupportedOptionException- if the datastore doesn't support cancellation of queries
-
cancel
public void cancel(Thread thr)
Method to cancel the executing query for the supplied thread.- Specified by:
cancelin interfacejavax.jdo.Query<T>- Throws:
javax.jdo.JDOUnsupportedOptionException- if the datastore doesn't support cancellation of queries
-
setCandidates
public void setCandidates(javax.jdo.Extent<T> extent)
Set the candidates for the query.- Specified by:
setCandidatesin interfacejavax.jdo.Query<T>- Parameters:
extent- Extent defining the candidates
-
setCandidates
public void setCandidates(Collection<T> pcs)
Set the candidates for the query.- Specified by:
setCandidatesin interfacejavax.jdo.Query<T>- Parameters:
pcs- PC candidates
-
setClass
public void setClass(Class<T> candidateClass)
Set the candidate class for the query.- Specified by:
setClassin interfacejavax.jdo.Query<T>- Parameters:
candidateClass- Candidate class
-
addExtension
public void addExtension(String key, Object value)
Method to add an extension to the query.- Specified by:
addExtensionin interfacejavax.jdo.Query<T>- Parameters:
key- Key for the extensionvalue- Value for the extension
-
setExtensions
public void setExtensions(Map extensions)
Set the extensions for the query.- Specified by:
setExtensionsin interfacejavax.jdo.Query<T>- Parameters:
extensions- The extensions
-
extension
public javax.jdo.Query<T> extension(String key, Object value)
- Specified by:
extensionin interfacejavax.jdo.Query<T>
-
extensions
public javax.jdo.Query<T> extensions(Map values)
- Specified by:
extensionsin interfacejavax.jdo.Query<T>
-
getFetchPlan
public javax.jdo.FetchPlan getFetchPlan()
Accessor for the fetch plan to use.- Specified by:
getFetchPlanin interfacejavax.jdo.Query<T>- Returns:
- The fetch plan
-
filter
public javax.jdo.Query<T> filter(String filter)
- Specified by:
filterin interfacejavax.jdo.Query<T>
-
setFilter
public void setFilter(String filter)
Set the filter for the query.- Specified by:
setFilterin interfacejavax.jdo.Query<T>- Parameters:
filter- The query filter
-
groupBy
public javax.jdo.Query<T> groupBy(String grouping)
- Specified by:
groupByin interfacejavax.jdo.Query<T>
-
setGrouping
public void setGrouping(String grouping)
Set the grouping for the query.- Specified by:
setGroupingin interfacejavax.jdo.Query<T>- Parameters:
grouping- The grouping
-
getIgnoreCache
public boolean getIgnoreCache()
Accessor for the ignore cache setting- Specified by:
getIgnoreCachein interfacejavax.jdo.Query<T>- Returns:
- Ignore cache
-
setIgnoreCache
public void setIgnoreCache(boolean ignoreCache)
Set the ignore cache setting for the query.- Specified by:
setIgnoreCachein interfacejavax.jdo.Query<T>- Parameters:
ignoreCache- The ignore cache setting
-
ignoreCache
public javax.jdo.Query<T> ignoreCache(boolean flag)
- Specified by:
ignoreCachein interfacejavax.jdo.Query<T>
-
orderBy
public javax.jdo.Query<T> orderBy(String ordering)
- Specified by:
orderByin interfacejavax.jdo.Query<T>
-
setOrdering
public void setOrdering(String ordering)
Set the ordering for the query.- Specified by:
setOrderingin interfacejavax.jdo.Query<T>- Parameters:
ordering- The ordering
-
getPersistenceManager
public javax.jdo.PersistenceManager getPersistenceManager()
Accessor for the PersistenceManager.- Specified by:
getPersistenceManagerin interfacejavax.jdo.Query<T>- Returns:
- PM
-
range
public javax.jdo.Query<T> range(long fromIncl, long toExcl)
- Specified by:
rangein interfacejavax.jdo.Query<T>
-
range
public javax.jdo.Query<T> range(String range)
- Specified by:
rangein interfacejavax.jdo.Query<T>
-
setRange
public void setRange(String range)
Set the range for the query.- Specified by:
setRangein interfacejavax.jdo.Query<T>- Parameters:
range- The range specification
-
setRange
public void setRange(long fromIncl, long toExcl)Set the range for the query.- Specified by:
setRangein interfacejavax.jdo.Query<T>- Parameters:
fromIncl- From range inclusivetoExcl- To range exclusive
-
result
public javax.jdo.Query<T> result(String result)
- Specified by:
resultin interfacejavax.jdo.Query<T>
-
setResult
public void setResult(String result)
Set the result for the query.- Specified by:
setResultin interfacejavax.jdo.Query<T>- Parameters:
result- Result clause
-
setResultClass
public void setResultClass(Class result_cls)
Set the result class for the query.- Specified by:
setResultClassin interfacejavax.jdo.Query<T>- Parameters:
result_cls- Result class
-
setDatastoreReadTimeoutMillis
public void setDatastoreReadTimeoutMillis(Integer timeout)
Set the datastore read timeout.- Specified by:
setDatastoreReadTimeoutMillisin interfacejavax.jdo.Query<T>- Parameters:
timeout- Timeout interval (millisecs)
-
getDatastoreReadTimeoutMillis
public Integer getDatastoreReadTimeoutMillis()
Accessor for the datastore read timeout.- Specified by:
getDatastoreReadTimeoutMillisin interfacejavax.jdo.Query<T>- Returns:
- Timeout (if defined)
-
setDatastoreWriteTimeoutMillis
public void setDatastoreWriteTimeoutMillis(Integer timeout)
Set the datastore write timeout.- Specified by:
setDatastoreWriteTimeoutMillisin interfacejavax.jdo.Query<T>- Parameters:
timeout- Timeout interval (millisecs)
-
getDatastoreWriteTimeoutMillis
public Integer getDatastoreWriteTimeoutMillis()
Accessor for the datastore write timeout.- Specified by:
getDatastoreWriteTimeoutMillisin interfacejavax.jdo.Query<T>- Returns:
- Timeout (if defined)
-
datastoreReadTimeoutMillis
public javax.jdo.Query<T> datastoreReadTimeoutMillis(Integer interval)
- Specified by:
datastoreReadTimeoutMillisin interfacejavax.jdo.Query<T>
-
datastoreWriteTimeoutMillis
public javax.jdo.Query<T> datastoreWriteTimeoutMillis(Integer interval)
- Specified by:
datastoreWriteTimeoutMillisin interfacejavax.jdo.Query<T>
-
setUnique
public void setUnique(boolean unique)
Set whether to expect a unique result.- Specified by:
setUniquein interfacejavax.jdo.Query<T>- Parameters:
unique- Whether results are unique
-
isUnmodifiable
public boolean isUnmodifiable()
Accessor for whether the query is modifiable.- Specified by:
isUnmodifiablein interfacejavax.jdo.Query<T>- Returns:
- Whether it is modifiable
-
setUnmodifiable
public void setUnmodifiable()
Set the query to be unmodifiable.- Specified by:
setUnmodifiablein interfacejavax.jdo.Query<T>
-
unmodifiable
public javax.jdo.Query<T> unmodifiable()
- Specified by:
unmodifiablein interfacejavax.jdo.Query<T>
-
addSubquery
public void addSubquery(javax.jdo.Query sub, String variableDecl, String candidateExpr)Add a subquery to this query.- Specified by:
addSubqueryin interfacejavax.jdo.Query<T>- Parameters:
sub- the subquery to add to this QueryvariableDecl- the name of the variable in the outer query to bind the results of the subquerycandidateExpr- the candidate collection of the subquery as an expression using terms of the outer query
-
addSubquery
public void addSubquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, String parameter)Add a subquery to this query. The String version of the method binds the named expression to the parameter implictly or explicitly declared in the subquery.- Specified by:
addSubqueryin interfacejavax.jdo.Query<T>- Parameters:
sub- the subquery to add to this QueryvariableDecl- the name of the variable to be used in this QuerycandidateExpr- the candidate collection to apply to the subqueryparameter- the expression from the outer query to bind the parameter in the subquery
-
addSubquery
public void addSubquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, String... parameters)Add a subquery to this query. The String version of the method binds the named expression to the parameter implictly or explicitly declared in the subquery.- Specified by:
addSubqueryin interfacejavax.jdo.Query<T>- Parameters:
sub- the subquery to add to this QueryvariableDecl- the name of the variable to be used in this QuerycandidateExpr- the candidate collection to apply to the subqueryparameters- the expressions from the outer query to bind the parameter in the subquery
-
addSubquery
public void addSubquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, Map parameters)Add a subquery to this query. The String version of the method binds the named expression to the parameter implictly or explicitly declared in the subquery.- Specified by:
addSubqueryin interfacejavax.jdo.Query<T>- Parameters:
sub- the subquery to add to this QueryvariableDecl- the name of the variable to be used in this QuerycandidateExpr- the candidate collection to apply to the subqueryparameters- the expressions from the outer query to bind the parameter in the subquery
-
subquery
public javax.jdo.Query<T> subquery(javax.jdo.Query sub, String variableDecl, String candidateExpr)
- Specified by:
subqueryin interfacejavax.jdo.Query<T>
-
subquery
public javax.jdo.Query<T> subquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, String parameter)
- Specified by:
subqueryin interfacejavax.jdo.Query<T>
-
subquery
public javax.jdo.Query<T> subquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, String... parameters)
- Specified by:
subqueryin interfacejavax.jdo.Query<T>
-
subquery
public javax.jdo.Query<T> subquery(javax.jdo.Query sub, String variableDecl, String candidateExpr, Map parameters)
- Specified by:
subqueryin interfacejavax.jdo.Query<T>
-
getSerializeRead
public Boolean getSerializeRead()
Accessor for whether to serialise any read objects in this query.- Specified by:
getSerializeReadin interfacejavax.jdo.Query<T>- Returns:
- The setting for whether to serialise any read objects
-
setSerializeRead
public void setSerializeRead(Boolean serialize)
Mutator for whether to serialise any read objects.- Specified by:
setSerializeReadin interfacejavax.jdo.Query<T>- Parameters:
serialize- Whether to serialise any read objects in this query.
-
serializeRead
public javax.jdo.Query<T> serializeRead(Boolean serialize)
- Specified by:
serializeReadin interfacejavax.jdo.Query<T>
-
getInternalQuery
public org.datanucleus.store.query.Query<T> getInternalQuery()
Accessor for the internal query.- Returns:
- Internal query
-
getLanguage
public String getLanguage()
Accessor for the query language.- Returns:
- Query language
-
saveAsNamedQuery
public javax.jdo.Query<T> saveAsNamedQuery(String name)
Save this query as a named query with the specified name.- Specified by:
saveAsNamedQueryin interfacejavax.jdo.Query<T>- Parameters:
name- The name to refer to it under- Returns:
- This query
-
toString
public String toString()
Convenience method to return the query in string form.
-
getNativeQuery
public Object getNativeQuery()
Accessor for the native query invoked by this query (if known at this time and supported by the store plugin).- Returns:
- The native query (e.g for RDBMS this is the SQL).
-
assertIsOpen
protected void assertIsOpen()
Method to assert if this Query is open.- Throws:
javax.jdo.JDOFatalUserException- if the Query is closed.
-
-