Changes in the Cache
When you use an Extent for the
set of candidate instances in a query, the instances you retrieve depend
on the setting of the IgnoreCache
flag. This flag indicates whether changes you have made
to instances during the transaction should be reflected in the query
results.
If IgnoreCache is false, instances that were made persistent in
the current transaction are included in the set of
candidate instances; instances deleted in the current transaction are
not included in the set of candidate instances.
Furthermore, instances changed in the transaction are evaluated with
their current values.
Setting IgnoreCache to true tells the query engine that you would
like queries to be optimized and to return approximate results by
ignoring any changes in the cache. Instances made persistent in the
current transaction might not be considered part of the candidate
instances, and instances deleted in the current transaction might not be
considered part of the candidate instances.
For portability, you should set the IgnoreCache flag to false. An
implementation may choose to ignore the setting of the IgnoreCache flag, always returning exact
results that reflect current cached values, just as if the value of the
flag were false. The results of
iterating Extents and executing
queries may differ among implementations when IgnoreCache is set to true.
The PersistenceManager
interface has the following methods to get and set the value of the
IgnoreCache flag for all Query instances ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access