Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.cayenne.cache
Interface QueryCache

All Known Implementing Classes:
  EhCacheQueryCache, MapQueryCache, NestedQueryCache, OSQueryCache

    public interface QueryCache

An interface that defines generic QueryCache.

Note that depending on implementation, `remove(String)`, `removeGroup(String)` and `clear()` methods may mark the matching existing entries as expired instead of actually removing them. So it may appear that the size of the cache, as reported by `size()` method, is unchanged.

Since:
  3.0

Method Summary
`void` | `clear()` Clears all cache entries.
`java.util.List` | `get(QueryMetadata metadata)` Returns a cached query result for the given QueryMetadata or null if the result is not cached or is expired.
`java.util.List` | `get(QueryMetadata metadata, QueryCacheEntryFactory factory)` Returns a cached query result for the given QueryMetadata.
`void` | `put(QueryMetadata metadata, java.util.List results)`
`void` | `remove(java.lang.String key)` Removes a single entry from cache.
`void` | `removeGroup(java.lang.String groupKey)` Removes a group of entries identified by group key.
`int` | `size()` Returns the number of entries currently in the cache, including expired but not removed entries.

Method Detail

### get

    java.util.List get(QueryMetadata metadata)

  Returns a cached query result for the given QueryMetadata or null if the result is not cached or is expired.

### get

    java.util.List get(QueryMetadata metadata,
                       QueryCacheEntryFactory factory)

  Returns a cached query result for the given QueryMetadata. If the result is not cached or is expired, cache will use provided factory to rebuild the value and store it in the cache. A corollary is that this method never returns null.

  Compared to `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.

### put

    void put(QueryMetadata metadata,
             java.util.List results)

### remove

    void remove(java.lang.String key)

  Removes a single entry from cache.

### removeGroup

    void removeGroup(java.lang.String groupKey)

  Removes a group of entries identified by group key. Note that depending on implementation this method may either actively remove the entries belonging to the group or just mark them as expired, so that they are refreshed on the next access. In the former case the cache size would shrink, but in the later the cache size will not change after calling this method.

### clear

    void clear()

  Clears all cache entries.

### size

    int size()

  Returns the number of entries currently in the cache, including expired but not removed entries.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.