public class NestedQueryCache extends Object implements QueryCache
QueryCache
wrapper that introduces a key namespace on top of a
delegate shared cache. This way multiple cache users can share the same
underlying cache without a possibility of key conflicts, yet refresh the
cache groups in a coordinated fashion.Modifier and Type | Field and Description |
---|---|
protected QueryCache |
delegate |
protected String |
namespace |
Constructor and Description |
---|
NestedQueryCache(QueryCache delegate) |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Deprecated.
since 4.0
|
List |
get(QueryMetadata metadata)
Returns a cached query result for the given QueryMetadata or null if the result is
not cached or is expired.
|
List |
get(QueryMetadata metadata,
QueryCacheEntryFactory factory)
Returns a cached query result for the given QueryMetadata.
|
QueryCache |
getDelegate()
Returns the actual implementation of the query cache that is wrapped by
this NestedQueryCache.
|
void |
put(QueryMetadata metadata,
List results) |
void |
remove(String key)
Removes an entry for key in the current namespace.
|
void |
removeGroup(String groupKey)
Invalidates a shared cache group.
|
void |
removeGroup(String groupKey,
Class<?> keyType,
Class<?> valueType)
Removes a group of entries identified by group key.
|
int |
size()
Deprecated.
since 4.0
|
protected QueryCache delegate
protected String namespace
public NestedQueryCache(QueryCache delegate)
public QueryCache getDelegate()
@Deprecated public void clear()
clear
in interface QueryCache
QueryCache.clear()
public List get(QueryMetadata metadata, QueryCacheEntryFactory factory)
QueryCache
Compared to QueryCache.get(QueryMetadata)
, this method allows the cache to do
appropriate synchronization when refreshing the entry, preventing multiple threads
from running the same query when a missing entry is requested by multiple threads
simultaneously.
get
in interface QueryCache
public List get(QueryMetadata metadata)
QueryCache
get
in interface QueryCache
public void put(QueryMetadata metadata, List results)
put
in interface QueryCache
public void remove(String key)
remove
in interface QueryCache
public void removeGroup(String groupKey)
removeGroup
in interface QueryCache
public void removeGroup(String groupKey, Class<?> keyType, Class<?> valueType)
QueryCache
removeGroup
in interface QueryCache
QueryCache.removeGroup(String)
@Deprecated public int size()
size
in interface QueryCache
QueryCache.size()
Copyright © 2001–2017 Apache Cayenne. All rights reserved.