|
The typical use of a JDOQL query is to translate it into the native query language of the
datastore and return objects matched by the query. For many datastores it is simply impossible
to support the full JDOQL syntax in the datastore
native query language
and so it is
necessary to evaluate the query in-memory. This means that we evaluate as much as we can
in the datastore and then instantiate those objects and evaluate further in-memory.
Here we document the current capabilities of
in-memory evaluation
in DataNucleus.
-
Query methods
Collection.contains
,
Map.containsKey
,
Map.containsValue
and
Map.get
are not supported currently
-
Only simple subqueries are supported currently
To enable evaluation in memory you specify the query extension
datanucleus.query.evaluateInMemory
to
true
as follows
query.addExtension("datanucleus.query.evaluateInMemory","true");
This is also useful where you have a Collection of (persisted) objects and want to run a
query over the Collection. Simply turn on in-memory evaluation, and supply the candidate
collection to the query, and no communication with the datastore will be needed.
|
|