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 boolean
protected Integer
protected Integer
protected JDOFetchPlan
protected Object
protected boolean
protected 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 Boolean
private static final long
protected Set
<JDOQLTypedSubqueryImpl> Set of any subqueries used by this query.(package private) boolean
Fields 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, updateVals
Fields 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 void
Method to throw an exception if the query is currently not modifiable.protected void
Method to assert if this Query is open.void
void
javax.jdo.query.PersistableExpression
javax.jdo.query.CharacterExpression
characterParameter
(String name) void
close()
void
void
closeAll()
javax.jdo.query.CollectionExpression
collectionParameter
(String name) <E> javax.jdo.query.CollectionExpression
<Collection<E>, E> collectionParameter
(String name, Class<E> elementType) org.datanucleus.store.query.compiler.QueryCompilation
compile
(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.DateExpression
dateParameter
(String name) javax.jdo.query.DateTimeExpression
datetimeParameter
(String name) long
delete()
Extension method to provide bulk delete capabilities (not part of JDO).long
javax.jdo.JDOQLTypedQuery
<T> protected Object
executeInternalQuery
(org.datanucleus.store.query.Query internalQuery) <R> List
<R> executeResultList
(Class<R> resultCls) <R> R
executeResultUnique
(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.GeospatialHelper
javax.jdo.FetchPlan
boolean
protected org.datanucleus.store.query.Query
Convenience method to generate an internal DataNucleus Query and apply the generic compilation to it.getJDOQLForExpression
(org.datanucleus.store.query.expression.Expression expr) javax.jdo.PersistenceManager
static String
Method 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> boolean
isClosed()
Accessor for whether this Query is closed.boolean
javax.jdo.query.ListExpression
listParameter
(String name) <E> javax.jdo.query.ListExpression
<List<E>, E> listParameter
(String name, Class<E> elementType) javax.jdo.query.MapExpression
mapParameter
(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.StringExpression
stringParameter
(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.TimeExpression
timeParameter
(String name) javax.jdo.JDOQLTypedQuery
<T> long
update()
Extension method to provide bulk update capabilities (not part of JDO).private void
Convenience 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, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods 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:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
isClosed
public boolean isClosed()Accessor for whether this Query is closed.- Returns:
- Whether this Query is closed.
-
close
- Specified by:
close
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
closeAll
public void closeAll()- Specified by:
closeAll
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
candidate
public javax.jdo.query.PersistableExpression candidate()- Specified by:
candidate
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
parameter
- Specified by:
parameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
stringParameter
- Specified by:
stringParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
characterParameter
- Specified by:
characterParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
numericParameter
- Specified by:
numericParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
numericParameter
public <N extends Number> javax.jdo.query.NumericExpression<N> numericParameter(String name, Class<N> type) - Specified by:
numericParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
dateParameter
- Specified by:
dateParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
timeParameter
- Specified by:
timeParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
datetimeParameter
- Specified by:
datetimeParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
collectionParameter
- Specified by:
collectionParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
collectionParameter
public <E> javax.jdo.query.CollectionExpression<Collection<E>,E> collectionParameter(String name, Class<E> elementType) - Specified by:
collectionParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
mapParameter
- Specified by:
mapParameter
in 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:
mapParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
listParameter
- Specified by:
listParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
listParameter
public <E> javax.jdo.query.ListExpression<List<E>,E> listParameter(String name, Class<E> elementType) - Specified by:
listParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
variable
- Specified by:
variable
in 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:
ifThenElse
in 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:
ifThenElse
in 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:
ifThenElse
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
ifThenElse
public <V> javax.jdo.query.IfThenElseExpression<V> ifThenElse(javax.jdo.query.BooleanExpression cond, V thenValue, V elseValue) - Specified by:
ifThenElse
in 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:
ifThen
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
ifThen
public <V> javax.jdo.query.IfThenElseExpression<V> ifThen(javax.jdo.query.BooleanExpression cond, V thenValue) - Specified by:
ifThen
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
excludeSubclasses
- Specified by:
excludeSubclasses
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
includeSubclasses
- Specified by:
includeSubclasses
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
filter
- Specified by:
filter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
groupBy
- Specified by:
groupBy
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
having
- Specified by:
having
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
orderBy
- Specified by:
orderBy
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
range
- Specified by:
range
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
range
public javax.jdo.JDOQLTypedQuery<T> range(javax.jdo.query.NumericExpression lowerInclExpr, javax.jdo.query.NumericExpression upperExclExpr) - Specified by:
range
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
range
public javax.jdo.JDOQLTypedQuery<T> range(javax.jdo.query.Expression paramLowerInclExpr, javax.jdo.query.Expression paramUpperExclExpr) - Specified by:
range
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
subquery
- Specified by:
subquery
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
subquery
- Specified by:
subquery
in 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:
subquery
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
setParameters
- Specified by:
setParameters
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
setParameter
public javax.jdo.JDOQLTypedQuery<T> setParameter(javax.jdo.query.Expression paramExpr, Object value) - Specified by:
setParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
setParameter
- Specified by:
setParameter
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
setCandidates
- Specified by:
setCandidates
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
result
public javax.jdo.JDOQLTypedQuery<T> result(boolean distinct, javax.jdo.query.Expression<?>... exprs) - Specified by:
result
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeResultList
- Specified by:
executeResultList
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeResultUnique
- Specified by:
executeResultUnique
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeResultList
- Specified by:
executeResultList
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeResultUnique
- Specified by:
executeResultUnique
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeList
- Specified by:
executeList
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
executeUnique
- Specified by:
executeUnique
in 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:
deletePersistentAll
in 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:
getFetchPlan
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
getPersistenceManager
public javax.jdo.PersistenceManager getPersistenceManager()- Specified by:
getPersistenceManager
in 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:
compile
in 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:
getDatastoreReadTimeoutMillis
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
datastoreReadTimeoutMillis
- Specified by:
datastoreReadTimeoutMillis
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
getDatastoreWriteTimeoutMillis
- Specified by:
getDatastoreWriteTimeoutMillis
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
datastoreWriteTimeoutMillis
- Specified by:
datastoreWriteTimeoutMillis
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
getSerializeRead
- Specified by:
getSerializeRead
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
serializeRead
- Specified by:
serializeRead
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
isUnmodifiable
public boolean isUnmodifiable()- Specified by:
isUnmodifiable
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
unmodifiable
- Specified by:
unmodifiable
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
getIgnoreCache
public boolean getIgnoreCache()- Specified by:
getIgnoreCache
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
ignoreCache
- Specified by:
ignoreCache
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
extension
- Specified by:
extension
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
extensions
- Specified by:
extensions
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
cancelAll
public void cancelAll()- Specified by:
cancelAll
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
cancel
- Specified by:
cancel
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
saveAsNamedQuery
- Specified by:
saveAsNamedQuery
in interfacejavax.jdo.JDOQLTypedQuery<T>
-
getJDOQLForExpression
- Overrides:
getJDOQLForExpression
in 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:
geospatialHelper
in interfacejavax.jdo.JDOQLTypedQuery<T>
-