Class QueryResultsCachePolicy

java.lang.Object
org.eclipse.persistence.queries.QueryResultsCachePolicy
All Implemented Interfaces:
Serializable, Cloneable

public class QueryResultsCachePolicy extends Object implements Serializable, Cloneable
PUBLIC: A QueryResultsCache policy dictates how a query's results will be cached. It allows an invalidation policy and a maximum number of results to be set. Query results are cached based on the parameter values of a query, and the maximum number of results refers to the maximum number of parameter sets results will be cached for.\ By default query result caching is not used.
See Also:
  • Field Details

    • invalidationPolicy

      protected CacheInvalidationPolicy invalidationPolicy
      Allows invalidation to be specified.
    • maximumResultSets

      protected int maximumResultSets
      Specifies the cache size.
    • cacheType

      protected Class cacheType
      Allows the identity map class type to be set.
    • isNullIgnored

      protected boolean isNullIgnored
      Allows the caching of null to be configured.
    • invalidateOnChange

      protected boolean invalidateOnChange
      Allows the query cache to be invalidated when any object of any of the query classes is modified.
    • invalidationClasses

      protected Set<Class> invalidationClasses
      Stores the set of classes that should trigger the query cached results to be invalidated.
  • Constructor Details

    • QueryResultsCachePolicy

      public QueryResultsCachePolicy()
      PUBLIC: Build a QueryResultsCachePolicy with the default settings By default there is no invalidation of query results and the maximum number of results sets is 100.
    • QueryResultsCachePolicy

      public QueryResultsCachePolicy(CacheInvalidationPolicy policy, int maximumResultSets)
      PUBLIC: Build a QueryResultsCachePolicy and supply a CacheInvalidationPolicy and a maximum number of results sets.
      See Also:
    • QueryResultsCachePolicy

      public QueryResultsCachePolicy(CacheInvalidationPolicy policy)
      PUBLIC: Build a QueryResultsCachePolicy and supply a CacheInvalidationPolicy. The default value of 100 will be used for the maximum number of result sets
      See Also:
    • QueryResultsCachePolicy

      public QueryResultsCachePolicy(int maximumResultSets)
      PUBLIC: Build a QueryResultsCachePolicy and supply a maximum for the number of results sets. Results will be set not to expire in the cache.
  • Method Details

    • clone

      public QueryResultsCachePolicy clone()
      Overrides:
      clone in class Object
    • getInvalidationClasses

      public Set<Class> getInvalidationClasses()
      ADVANCED: Return the set of classes that should trigger the query cached results to be invalidated.
    • setInvalidationClasses

      public void setInvalidationClasses(Set<Class> invalidationClasses)
      ADVANCED: Set the set of classes that should trigger the query cached results to be invalidated. This is normally computed by the query, but can be set in the case of native queries.
    • isNullIgnored

      public boolean isNullIgnored()
      PUBLIC: Return if null results should be cached or ignored. By default they are cached. They can be ignored to allow a query cache to be used as a secondary cache index, and allow new objects to be insert, and still found.
    • setIsNullIgnored

      public void setIsNullIgnored(boolean isNullIgnored)
      PUBLIC: Set if null results should be cached or ignored. By default they are cached. They can be ignored to allow a query cache to be used as a secondary cache index, and allow new objects to be insert, and still found.
    • getInvalidateOnChange

      public boolean getInvalidateOnChange()
      PUBLIC: Return if any change to any object of the query class should cause the query results to be invalidated.
    • setInvalidateOnChange

      public void setInvalidateOnChange(boolean invalidateOnChange)
      PUBLIC: Configure if any change to any object of the query class should cause the query results to be invalidated.
    • getCacheType

      public Class getCacheType()
      PUBLIC: Return the type of the cache used for the query results. This defaults to a LRU cache (CacheIdentityMap), but can be set to any IdentityMap class, such as Full or Soft.
    • setCacheType

      public void setCacheType(Class cacheType)
      PUBLIC: Set the type of the cache used for the query results. This defaults to a LRU cache (CacheIdentityMap), but can be set to any IdentityMap class, such as Full or Soft.
    • useFullCache

      public void useFullCache()
      PUBLIC: Set the type of the cache used for the query results to a FullIdentityMap. This will cache all query results, so caution should be used to avoid running out of memory.
    • useSoftCache

      public void useSoftCache()
      PUBLIC: Set the type of the cache used for the query results to a SoftIdentityMap. This will cache all query results, unless the JVM believes memory is low.
    • useSoftLRUCache

      public void useSoftLRUCache()
      PUBLIC: Set the type of the cache used for the query results to a SoftCacheWeakIdentityMap. This will uses a fixed size LRU cache using Soft references, so will allow garbage collection when memory is low.
    • useLRUCache

      public void useLRUCache()
      PUBLIC: Set the type of the cache used for the query results to a CacheIdentityMap. This will uses a fixed size LRU cache. This is the default.
    • getCacheInvalidationPolicy

      public CacheInvalidationPolicy getCacheInvalidationPolicy()
      PUBLIC: Return the query cache invalidation policy. The cache invalidation policy defines how the query results are invalidated.
    • setCacheInvalidationPolicy

      public void setCacheInvalidationPolicy(CacheInvalidationPolicy invalidationPolicy)
      PUBLIC: Set the query cache invalidation policy. The cache invalidation policy defines how the query results are invalidated.
    • getMaximumCachedResults

      public int getMaximumCachedResults()
      PUBLIC: Return the maximum cached results. This defines the number of query result sets that will be cached. The LRU query results will be discarded when the max size is reached.
    • setMaximumCachedResults

      public void setMaximumCachedResults(int maximumResultSets)
      PUBLIC: Set the maximum cached results. This defines the number of query result sets that will be cached. The LRU query results will be discarded when the max size is reached.