Package org.apache.cayenne.query

## Class CacheableQuery

- java.lang.Object
- - org.apache.cayenne.query.CacheableQuery

- All Implemented Interfaces:
    `Serializable`, `Query`
  Direct Known Subclasses:
    `AbstractQuery`, `EJBQLQuery`

      public abstract class CacheableQuery
      extends Object
      implements Query

  Shared functionality for cacheable queries.
  Since:
    4.0
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static org.slf4j.Logger` | `logger` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CacheableQuery()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract org.apache.cayenne.query.BaseQueryMetadata` | `getBaseMetaData()` |
    `String` | `getCacheGroup()` |
    `QueryCacheStrategy` | `getCacheStrategy()` |
    `void` | `setCacheGroup​(String cacheGroup)` |
    `void` | `setCacheStrategy​(QueryCacheStrategy strategy)` |
    `void` | `useLocalCache()` | Instructs Cayenne to look for query results in the "local" cache when running the query.
    `void` | `useLocalCache​(String cacheGroup)` | Instructs Cayenne to look for query results in the "local" cache when running the query.
    `void` | `useSharedCache()` | Instructs Cayenne to look for query results in the "shared" cache when running the query.
    `void` | `useSharedCache​(String cacheGroup)` | Instructs Cayenne to look for query results in the "shared" cache when running the query.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.cayenne.query.Query

      `createSQLAction, getMetaData, route`

- - ### Field Detail

    - #### logger

          protected static final org.slf4j.Logger logger

  - ### Constructor Detail

    - #### CacheableQuery

          public CacheableQuery()

  - ### Method Detail

    - #### getBaseMetaData

          protected abstract org.apache.cayenne.query.BaseQueryMetadata getBaseMetaData()

    - #### getCacheStrategy

          public QueryCacheStrategy getCacheStrategy()

      Since:
        3.0

    - #### setCacheStrategy

          public void setCacheStrategy​(QueryCacheStrategy strategy)

      Since:
        3.0

    - #### getCacheGroup

          public String getCacheGroup()

      Since:
        4.0

    - #### setCacheGroup

          public void setCacheGroup​(String cacheGroup)

      Since:
        4.0

    - #### useLocalCache

          public void useLocalCache()

      Instructs Cayenne to look for query results in the "local" cache when running the query. This is a short-hand notation for:

           query.setCacheStrategy(QueryCacheStrategy.LOCAL_CACHE);

      Since:
        4.0

    - #### useLocalCache

          public void useLocalCache​(String cacheGroup)

      Instructs Cayenne to look for query results in the "local" cache when running the query. This is a short-hand notation for:

           query.setCacheStrategy(QueryCacheStrategy.LOCAL_CACHE);
           query.setCacheGroups("group1", "group2");

      Since:
        4.0

    - #### useSharedCache

          public void useSharedCache()

      Instructs Cayenne to look for query results in the "shared" cache when running the query. This is a short-hand notation for:

           query.setCacheStrategy(QueryCacheStrategy.SHARED_CACHE);

      Since:
        4.0

    - #### useSharedCache

          public void useSharedCache​(String cacheGroup)

      Instructs Cayenne to look for query results in the "shared" cache when running the query. This is a short-hand notation for:

           query.setCacheStrategy(QueryCacheStrategy.SHARED_CACHE);
           query.setCacheGroups("group1", "group2");

      Since:
        4.0