public interface Level2Cache extends Serializable
The L2 cache stores an object of type org.datanucleus.cache.CachedPC and is keyed by the identity of the object. The CachedPC contains the values of fields of a persistable object, together with the indicators for which fields are loaded. The relation field values do not store actual objects; they store the identities of the related objects. For example if an object X has a 1-1 relation with another persistable object Y then in the relation field values for X for that field we store the identity of Y. Similarly if the field is a Collection, then the relation field values will be a Collection of identities of the related objects. This provides isolation of each object in the L2 cache (so objects aren't storing references to other objects and so allowing garbage collection etc).
Objects are stored in the L2 cache in the following situations
Each class can be configured to be cacheable or not. The default for a persistable class is to be cacheable. Configuration is performed via annotations or XML metadata. If a class is not cacheable then objects of that type aren't stored in the L2 cache.
Modifier and Type | Method and Description |
---|---|
void |
close()
Method to close the cache when no longer needed.
|
boolean |
containsOid(Object oid)
Accessor for whether an object with the specified id is in the cache
|
void |
evict(Object oid)
Evict the parameter instance from the second-level cache.
|
void |
evictAll()
Evict the parameter instances from the second-level cache.
|
void |
evictAll(Class pcClass,
boolean subclasses)
Evict the parameter instances from the second-level cache.
|
void |
evictAll(Collection oids)
Evict the parameter instances from the second-level cache.
|
void |
evictAll(Object[] oids)
Evict the parameter instances from the second-level cache.
|
<T> CachedPC<T> |
get(Object oid)
Accessor for an object from the cache.
|
default Map<Object,CachedPC> |
getAll(Collection oids)
Accessor for a collection of objects from the cache.
|
default int |
getNumberOfPinnedObjects()
Accessor for the number of pinned objects in the cache.
|
default int |
getNumberOfUnpinnedObjects()
Accessor for the number of unpinned objects in the cache.
|
default int |
getSize()
Accessor for the total number of objects in the L2 cache.
|
default CachedPC |
getUnique(CacheUniqueKey key)
Method to retrieve the id represented by the specified unique key.
|
default boolean |
isEmpty()
Accessor for whether the cache is empty.
|
default void |
pin(Object oid)
Pin the parameter instance in the second-level cache.
|
default void |
pinAll(Class pcClass,
boolean subclasses)
Pin instances in the second-level cache.
|
default void |
pinAll(Collection oids)
Pin the parameter instances in the second-level cache.
|
default void |
pinAll(Object[] oids)
Pin the parameter instances in the second-level cache.
|
<T> CachedPC<T> |
put(Object oid,
CachedPC<T> pc)
Method to put an object in the cache.
|
default void |
putAll(Map<Object,CachedPC> objs)
Method to put several objects into the cache.
|
default CachedPC |
putUnique(CacheUniqueKey key,
CachedPC pc)
Method to store a persistable object for this unique key.
|
default void |
putUniqueAll(Map<CacheUniqueKey,CachedPC> objs)
Method to put several objects into the cache.
|
default void |
removeUnique(CacheUniqueKey key)
Method to remove any object cached against the provided unique key.
|
default void |
unpin(Object oid)
Unpin the parameter instance from the second-level cache.
|
default void |
unpinAll(Class pcClass,
boolean subclasses)
Unpin instances from the second-level cache.
|
default void |
unpinAll(Collection oids)
Unpin the parameter instances from the second-level cache.
|
default void |
unpinAll(Object[] oids)
Unpin the parameter instance from the second-level cache.
|
void close()
void evict(Object oid)
oid
- the object id of the instance to evict.void evictAll()
void evictAll(Object[] oids)
oids
- the object ids of the instance to evict.void evictAll(Collection oids)
oids
- the object ids of the instance to evict.void evictAll(Class pcClass, boolean subclasses)
pcClass
- the class of instances to evictsubclasses
- if true, evict instances of subclasses alsodefault int getSize()
<T> CachedPC<T> get(Object oid)
T
- Type of the object representedoid
- The Object IDdefault Map<Object,CachedPC> getAll(Collection oids)
oids
- The Object IDs<T> CachedPC<T> put(Object oid, CachedPC<T> pc)
T
- Type of the object representedoid
- The Object id for this objectpc
- The L2 cacheable persistable objectdefault void putAll(Map<Object,CachedPC> objs)
objs
- Map of cacheable object keyed by its oid.default boolean isEmpty()
boolean containsOid(Object oid)
oid
- The object iddefault CachedPC getUnique(CacheUniqueKey key)
key
- Unique keydefault CachedPC putUnique(CacheUniqueKey key, CachedPC pc)
key
- The unique keypc
- The representation of the persistable object to cachedefault void putUniqueAll(Map<CacheUniqueKey,CachedPC> objs)
objs
- Map of cacheable object keyed by the unique keys.default void removeUnique(CacheUniqueKey key)
key
- Unique keydefault void pin(Object oid)
oid
- the object id of the instance to pin.default void pinAll(Collection oids)
oids
- the object ids of the instances to pin.default void pinAll(Object[] oids)
oids
- the object ids of the instances to pin.default void pinAll(Class pcClass, boolean subclasses)
pcClass
- the class of instances to pinsubclasses
- if true, pin instances of subclasses alsodefault void unpin(Object oid)
oid
- the object id of the instance to unpin.default void unpinAll(Collection oids)
oids
- the object ids of the instance to evict.default void unpinAll(Object[] oids)
oids
- the object id of the instance to evict.default void unpinAll(Class pcClass, boolean subclasses)
pcClass
- the class of instances to unpinsubclasses
- if true, unpin instances of subclasses alsodefault int getNumberOfPinnedObjects()
default int getNumberOfUnpinnedObjects()
Copyright © 2019. All rights reserved.