Package org.datanucleus.api.jdo.query
Class JDOQLTypedQueryImpl<T>
java.lang.Object
org.datanucleus.api.jdo.query.AbstractJDOQLTypedQuery<T>
org.datanucleus.api.jdo.query.JDOQLTypedQueryImpl<T>
- All Implemented Interfaces:
Closeable,Serializable,AutoCloseable,javax.jdo.JDOQLTypedQuery<T>
public class JDOQLTypedQueryImpl<T>
extends AbstractJDOQLTypedQuery<T>
implements javax.jdo.JDOQLTypedQuery<T>
Implementation of a JDOQLTypedQuery.
Note that a JDOQLTypedQuery only supports named parameters.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Collection<T> private booleanprotected Integerprotected Integerprotected JDOFetchPlanprotected Objectprotected booleanprotected Set<org.datanucleus.store.query.Query> Internal queries generated by this typesafe query.protected Map<String, ExpressionImpl> Map of parameter expression keyed by the name.Map of parameters keyed by their name/expression.protected Booleanprivate static final longprotected Set<JDOQLTypedSubqueryImpl> Set of any subqueries used by this query.(package private) booleanFields inherited from class org.datanucleus.api.jdo.query.AbstractJDOQLTypedQuery
candidateAlias, candidateCls, compilation, ec, filter, grouping, having, ordering, parentQuery, pm, queryString, rangeLowerExpr, rangeUpperExpr, result, resultClass, resultDistinct, subclasses, type, unique, updateExprs, updateValsFields inherited from interface javax.jdo.JDOQLTypedQuery
QUERY_CLASS_PREFIX -
Constructor Summary
ConstructorsConstructorDescriptionJDOQLTypedQueryImpl(javax.jdo.PersistenceManager pm, Class<T> candidateClass) Constructor for a typesafe query. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidMethod to throw an exception if the query is currently not modifiable.protected voidMethod to assert if this Query is open.voidvoidjavax.jdo.query.PersistableExpressionjavax.jdo.query.CharacterExpressioncharacterParameter(String name) voidclose()voidvoidcloseAll()javax.jdo.query.CollectionExpressioncollectionParameter(String name) <E> javax.jdo.query.CollectionExpression<Collection<E>, E> collectionParameter(String name, Class<E> elementType) org.datanucleus.store.query.compiler.QueryCompilationcompile(org.datanucleus.metadata.MetaDataManager mmgr, org.datanucleus.ClassLoaderResolver clr) Method to compile the typesafe query.javax.jdo.JDOQLTypedQuery<T> datastoreReadTimeoutMillis(Integer interval) javax.jdo.JDOQLTypedQuery<T> datastoreWriteTimeoutMillis(Integer interval) javax.jdo.query.DateExpressiondateParameter(String name) javax.jdo.query.DateTimeExpressiondatetimeParameter(String name) longdelete()Extension method to provide bulk delete capabilities (not part of JDO).longjavax.jdo.JDOQLTypedQuery<T> protected ObjectexecuteInternalQuery(org.datanucleus.store.query.Query internalQuery) <R> List<R> executeResultList(Class<R> resultCls) <R> RexecuteResultUnique(Class<R> resultCls) javax.jdo.JDOQLTypedQuery<T> javax.jdo.JDOQLTypedQuery<T> extensions(Map values) javax.jdo.JDOQLTypedQuery<T> filter(javax.jdo.query.BooleanExpression expr) javax.jdo.query.geospatial.GeospatialHelperjavax.jdo.FetchPlanbooleanprotected org.datanucleus.store.query.QueryConvenience method to generate an internal DataNucleus Query and apply the generic compilation to it.getJDOQLForExpression(org.datanucleus.store.query.expression.Expression expr) javax.jdo.PersistenceManagerstatic StringMethod to return the (simple) name of the query class for a specified class name.javax.jdo.JDOQLTypedQuery<T> groupBy(javax.jdo.query.Expression... exprs) javax.jdo.JDOQLTypedQuery<T> having(javax.jdo.query.Expression expr) <V> javax.jdo.query.IfThenElseExpression<V> ifThen(Class<V> type, javax.jdo.query.BooleanExpression cond, javax.jdo.query.Expression<V> thenValueExpr) <V> javax.jdo.query.IfThenElseExpression<V> ifThen(javax.jdo.query.BooleanExpression cond, V thenValue) <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(Class<V> type, javax.jdo.query.BooleanExpression ifExpr, javax.jdo.query.Expression<V> thenValueExpr, javax.jdo.query.Expression<V> elseValueExpr) <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(javax.jdo.query.BooleanExpression cond, javax.jdo.query.Expression<V> thenValueExpr, V elseValue) <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(javax.jdo.query.BooleanExpression cond, V thenValue, javax.jdo.query.Expression<V> elseValueExpr) <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(javax.jdo.query.BooleanExpression cond, V thenValue, V elseValue) javax.jdo.JDOQLTypedQuery<T> ignoreCache(boolean flag) javax.jdo.JDOQLTypedQuery<T> booleanisClosed()Accessor for whether this Query is closed.booleanjavax.jdo.query.ListExpressionlistParameter(String name) <E> javax.jdo.query.ListExpression<List<E>, E> listParameter(String name, Class<E> elementType) javax.jdo.query.MapExpressionmapParameter(String name) <K,V> javax.jdo.query.MapExpression <Map<K, V>, K, V> mapParameter(String name, Class<K> keyType, Class<V> valueType) javax.jdo.query.NumericExpression<? extends Number> numericParameter(String name) <N extends Number>
javax.jdo.query.NumericExpression<N> numericParameter(String name, Class<N> type) javax.jdo.JDOQLTypedQuery<T> orderBy(javax.jdo.query.OrderExpression... exprs) <P> javax.jdo.query.Expression<P> javax.jdo.JDOQLTypedQuery<T> range(long lowerIncl, long upperExcl) javax.jdo.JDOQLTypedQuery<T> range(javax.jdo.query.Expression paramLowerInclExpr, javax.jdo.query.Expression paramUpperExclExpr) javax.jdo.JDOQLTypedQuery<T> range(javax.jdo.query.NumericExpression lowerInclExpr, javax.jdo.query.NumericExpression upperExclExpr) javax.jdo.JDOQLTypedQuery<T> result(boolean distinct, javax.jdo.query.Expression<?>... exprs) javax.jdo.JDOQLTypedQuery<T> saveAsNamedQuery(String name) javax.jdo.JDOQLTypedQuery<T> serializeRead(Boolean serialize) javax.jdo.JDOQLTypedQuery<T> Method to specify the update of a field of the candidate.javax.jdo.JDOQLTypedQuery<T> setCandidates(Collection<T> candidates) javax.jdo.JDOQLTypedQuery<T> setParameter(String paramName, Object value) javax.jdo.JDOQLTypedQuery<T> setParameter(javax.jdo.query.Expression paramExpr, Object value) javax.jdo.JDOQLTypedQuery<T> setParameters(Map namedParamMap) javax.jdo.query.StringExpressionstringParameter(String name) <S> javax.jdo.JDOQLTypedSubquery<S> javax.jdo.JDOQLTypedSubquery<T> <E> javax.jdo.JDOQLTypedSubquery<E> subquery(javax.jdo.query.CollectionExpression<Collection<E>, E> candidateCollection, Class<E> candidateClass, String candidateAlias) javax.jdo.query.TimeExpressiontimeParameter(String name) javax.jdo.JDOQLTypedQuery<T> longupdate()Extension method to provide bulk update capabilities (not part of JDO).private voidConvenience method to validate the defined parameters, and the values provided for these parameters.<V> javax.jdo.query.Expression<V> Methods inherited from class org.datanucleus.api.jdo.query.AbstractJDOQLTypedQuery
discardCompiled, getCompilation, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface javax.jdo.JDOQLTypedQuery
toString
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
closed
private boolean closed -
fetchPlan
-
ignoreCache
protected boolean ignoreCache -
serializeRead
-
datastoreReadTimeout
-
datastoreWriteTimeout
-
extensions
-
candidates
-
unmodifiable
boolean unmodifiable -
parameterExprByName
Map of parameter expression keyed by the name. -
parameterValuesByName
Map of parameters keyed by their name/expression. -
subqueries
Set of any subqueries used by this query. -
internalQueries
Internal queries generated by this typesafe query. Managed so that they can be closed. TODO Use just one? -
geospatialHelper
-
-
Constructor Details
-
JDOQLTypedQueryImpl
Constructor for a typesafe query.- Parameters:
pm- Persistence ManagercandidateClass- The candidate class
-
-
Method Details
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
isClosed
public boolean isClosed()Accessor for whether this Query is closed.- Returns:
- Whether this Query is closed.
-
close
- Specified by:
closein interfacejavax.jdo.JDOQLTypedQuery<T>
-
closeAll
public void closeAll()- Specified by:
closeAllin interfacejavax.jdo.JDOQLTypedQuery<T>
-
candidate
public javax.jdo.query.PersistableExpression candidate()- Specified by:
candidatein interfacejavax.jdo.JDOQLTypedQuery<T>
-
parameter
- Specified by:
parameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
stringParameter
- Specified by:
stringParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
characterParameter
- Specified by:
characterParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
numericParameter
- Specified by:
numericParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
numericParameter
public <N extends Number> javax.jdo.query.NumericExpression<N> numericParameter(String name, Class<N> type) - Specified by:
numericParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
dateParameter
- Specified by:
dateParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
timeParameter
- Specified by:
timeParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
datetimeParameter
- Specified by:
datetimeParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
collectionParameter
- Specified by:
collectionParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
collectionParameter
public <E> javax.jdo.query.CollectionExpression<Collection<E>,E> collectionParameter(String name, Class<E> elementType) - Specified by:
collectionParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
mapParameter
- Specified by:
mapParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
mapParameter
public <K,V> javax.jdo.query.MapExpression<Map<K,V>, mapParameterK, V> (String name, Class<K> keyType, Class<V> valueType) - Specified by:
mapParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
listParameter
- Specified by:
listParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
listParameter
public <E> javax.jdo.query.ListExpression<List<E>,E> listParameter(String name, Class<E> elementType) - Specified by:
listParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
variable
- Specified by:
variablein interfacejavax.jdo.JDOQLTypedQuery<T>
-
ifThenElse
public <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(Class<V> type, javax.jdo.query.BooleanExpression ifExpr, javax.jdo.query.Expression<V> thenValueExpr, javax.jdo.query.Expression<V> elseValueExpr) - Specified by:
ifThenElsein interfacejavax.jdo.JDOQLTypedQuery<T>
-
ifThenElse
public <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(javax.jdo.query.BooleanExpression cond, javax.jdo.query.Expression<V> thenValueExpr, V elseValue) - Specified by:
ifThenElsein interfacejavax.jdo.JDOQLTypedQuery<T>
-
ifThenElse
public <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(javax.jdo.query.BooleanExpression cond, V thenValue, javax.jdo.query.Expression<V> elseValueExpr) - Specified by:
ifThenElsein interfacejavax.jdo.JDOQLTypedQuery<T>
-
ifThenElse
public <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(javax.jdo.query.BooleanExpression cond, V thenValue, V elseValue) - Specified by:
ifThenElsein interfacejavax.jdo.JDOQLTypedQuery<T>
-
ifThen
public <V> javax.jdo.query.IfThenElseExpression<V> ifThen(Class<V> type, javax.jdo.query.BooleanExpression cond, javax.jdo.query.Expression<V> thenValueExpr) - Specified by:
ifThenin interfacejavax.jdo.JDOQLTypedQuery<T>
-
ifThen
public <V> javax.jdo.query.IfThenElseExpression<V> ifThen(javax.jdo.query.BooleanExpression cond, V thenValue) - Specified by:
ifThenin interfacejavax.jdo.JDOQLTypedQuery<T>
-
excludeSubclasses
- Specified by:
excludeSubclassesin interfacejavax.jdo.JDOQLTypedQuery<T>
-
includeSubclasses
- Specified by:
includeSubclassesin interfacejavax.jdo.JDOQLTypedQuery<T>
-
filter
- Specified by:
filterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
groupBy
- Specified by:
groupByin interfacejavax.jdo.JDOQLTypedQuery<T>
-
having
- Specified by:
havingin interfacejavax.jdo.JDOQLTypedQuery<T>
-
orderBy
- Specified by:
orderByin interfacejavax.jdo.JDOQLTypedQuery<T>
-
range
- Specified by:
rangein interfacejavax.jdo.JDOQLTypedQuery<T>
-
range
public javax.jdo.JDOQLTypedQuery<T> range(javax.jdo.query.NumericExpression lowerInclExpr, javax.jdo.query.NumericExpression upperExclExpr) - Specified by:
rangein interfacejavax.jdo.JDOQLTypedQuery<T>
-
range
public javax.jdo.JDOQLTypedQuery<T> range(javax.jdo.query.Expression paramLowerInclExpr, javax.jdo.query.Expression paramUpperExclExpr) - Specified by:
rangein interfacejavax.jdo.JDOQLTypedQuery<T>
-
subquery
- Specified by:
subqueryin interfacejavax.jdo.JDOQLTypedQuery<T>
-
subquery
- Specified by:
subqueryin interfacejavax.jdo.JDOQLTypedQuery<T>
-
subquery
public <E> javax.jdo.JDOQLTypedSubquery<E> subquery(javax.jdo.query.CollectionExpression<Collection<E>, E> candidateCollection, Class<E> candidateClass, String candidateAlias) - Specified by:
subqueryin interfacejavax.jdo.JDOQLTypedQuery<T>
-
setParameters
- Specified by:
setParametersin interfacejavax.jdo.JDOQLTypedQuery<T>
-
setParameter
public javax.jdo.JDOQLTypedQuery<T> setParameter(javax.jdo.query.Expression paramExpr, Object value) - Specified by:
setParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
setParameter
- Specified by:
setParameterin interfacejavax.jdo.JDOQLTypedQuery<T>
-
setCandidates
- Specified by:
setCandidatesin interfacejavax.jdo.JDOQLTypedQuery<T>
-
result
public javax.jdo.JDOQLTypedQuery<T> result(boolean distinct, javax.jdo.query.Expression<?>... exprs) - Specified by:
resultin interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeResultList
- Specified by:
executeResultListin interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeResultUnique
- Specified by:
executeResultUniquein interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeResultList
- Specified by:
executeResultListin interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeResultUnique
- Specified by:
executeResultUniquein interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeList
- Specified by:
executeListin interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeUnique
- Specified by:
executeUniquein interfacejavax.jdo.JDOQLTypedQuery<T>
-
getInternalQuery
protected org.datanucleus.store.query.Query getInternalQuery()Convenience method to generate an internal DataNucleus Query and apply the generic compilation to it.- Returns:
- The internal DataNucleus query
-
executeInternalQuery
-
deletePersistentAll
public long deletePersistentAll()- Specified by:
deletePersistentAllin interfacejavax.jdo.JDOQLTypedQuery<T>
-
validateParameters
private void validateParameters()Convenience method to validate the defined parameters, and the values provided for these parameters.- Throws:
javax.jdo.JDOUserException- if they are inconsistent
-
set
Method to specify the update of a field of the candidate.- Parameters:
expr- Expression for field of the candidateval- The new value- Returns:
- The query
-
update
public long update()Extension method to provide bulk update capabilities (not part of JDO).- Returns:
- Number of instances that were updated
-
delete
public long delete()Extension method to provide bulk delete capabilities (not part of JDO). This differs from deletePersistentAll() in that it doesn't cascade to related objects (unless the datastore does that automatically), and that it doesn't attempt to update cached objects state to reflect the deletion.- Returns:
- Number of instances that were deleted
-
getFetchPlan
public javax.jdo.FetchPlan getFetchPlan()- Specified by:
getFetchPlanin interfacejavax.jdo.JDOQLTypedQuery<T>
-
getPersistenceManager
public javax.jdo.PersistenceManager getPersistenceManager()- Specified by:
getPersistenceManagerin interfacejavax.jdo.JDOQLTypedQuery<T>
-
compile
public org.datanucleus.store.query.compiler.QueryCompilation compile(org.datanucleus.metadata.MetaDataManager mmgr, org.datanucleus.ClassLoaderResolver clr) Method to compile the typesafe query.- Overrides:
compilein classAbstractJDOQLTypedQuery<T>- Parameters:
mmgr- Metadata managerclr- ClassLoader resolver- Returns:
- The generic compilation
-
getQueryClassNameForClassName
Method to return the (simple) name of the query class for a specified class name. Currently just returns "Q{className}"- Parameters:
name- Simple name of the class (without package)- Returns:
- Simple name of the query class
-
getDatastoreReadTimeoutMillis
- Specified by:
getDatastoreReadTimeoutMillisin interfacejavax.jdo.JDOQLTypedQuery<T>
-
datastoreReadTimeoutMillis
- Specified by:
datastoreReadTimeoutMillisin interfacejavax.jdo.JDOQLTypedQuery<T>
-
getDatastoreWriteTimeoutMillis
- Specified by:
getDatastoreWriteTimeoutMillisin interfacejavax.jdo.JDOQLTypedQuery<T>
-
datastoreWriteTimeoutMillis
- Specified by:
datastoreWriteTimeoutMillisin interfacejavax.jdo.JDOQLTypedQuery<T>
-
getSerializeRead
- Specified by:
getSerializeReadin interfacejavax.jdo.JDOQLTypedQuery<T>
-
serializeRead
- Specified by:
serializeReadin interfacejavax.jdo.JDOQLTypedQuery<T>
-
isUnmodifiable
public boolean isUnmodifiable()- Specified by:
isUnmodifiablein interfacejavax.jdo.JDOQLTypedQuery<T>
-
unmodifiable
- Specified by:
unmodifiablein interfacejavax.jdo.JDOQLTypedQuery<T>
-
getIgnoreCache
public boolean getIgnoreCache()- Specified by:
getIgnoreCachein interfacejavax.jdo.JDOQLTypedQuery<T>
-
ignoreCache
- Specified by:
ignoreCachein interfacejavax.jdo.JDOQLTypedQuery<T>
-
extension
- Specified by:
extensionin interfacejavax.jdo.JDOQLTypedQuery<T>
-
extensions
- Specified by:
extensionsin interfacejavax.jdo.JDOQLTypedQuery<T>
-
cancelAll
public void cancelAll()- Specified by:
cancelAllin interfacejavax.jdo.JDOQLTypedQuery<T>
-
cancel
- Specified by:
cancelin interfacejavax.jdo.JDOQLTypedQuery<T>
-
saveAsNamedQuery
- Specified by:
saveAsNamedQueryin interfacejavax.jdo.JDOQLTypedQuery<T>
-
getJDOQLForExpression
- Overrides:
getJDOQLForExpressionin classAbstractJDOQLTypedQuery<T>
-
assertIsModifiable
protected void assertIsModifiable()Method to throw an exception if the query is currently not modifiable.- Throws:
org.datanucleus.exceptions.NucleusUserException- Thrown when it is unmodifiable
-
assertIsOpen
protected void assertIsOpen()Method to assert if this Query is open.- Throws:
javax.jdo.JDOFatalUserException- if the Query is closed.
-
geospatialHelper
public javax.jdo.query.geospatial.GeospatialHelper geospatialHelper()- Specified by:
geospatialHelperin interfacejavax.jdo.JDOQLTypedQuery<T>
-