public interface PreparedQueryCache extends Configurable
prepared queries. 
 
 To cache a PreparedQuery is two-stage process. In the first stage, 
 register(String, Query, FetchConfiguration) register} 
 an identification key and a compiled Query Q to create a 
 hollow PreparedQuery instance P in the cache. In the second stage, after Q 
 executes, initialize(String, Object) initialize} the hollow 
 Prepared Query P from the result of execution such as the target
 database query PQ and its parameters. After initialization, P  can 
 be used with re-parameterization for subsequent execution of the original 
 Query Q. 
 
 The target database query PQ associated to a cached prepared query P  
 may depend upon query execution context such as fetch plan or 
 lock group. This cache, by design, does not monitor the context or 
 automatically invalidate an entry P when the original query Q is executed  
 with context parameters that affect the target query PQ. 
 
 The user must notify this receiver to invalidate a cached entry P when 
 execution context changes in a way that will modify the resultant database 
 language query PQ.
 
 One of the built-in mechanism (available in JPA facade) is to set query hints
 to either invalidate the query entirely or ignore the cached version for the 
 current execution.QueryHints.HINT_IGNORE_PREPARED_QUERY, 
This cache allows customization of whether a query can be cached or not
 via either explicit marking of certain keys as non-cachable (which is 
 irreversible or strong) or addition/removal of exclusion patterns 
 (which is reversible or weak)., 
#markUncachable(String), 
addExclusionPattern(String), 
setExcludes(String), 
removeExclusionPattern(String)| Modifier and Type | Interface and Description | 
|---|---|
| static interface  | PreparedQueryCache.ExclusionA structure to describe the strength and reason for excluding a query from the cache. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addExclusionPattern(String pattern)Adds the given pattern to the list of excluded patterns. | 
| boolean | cache(PreparedQuery q)Cache the given PreparedQuery. | 
| void | clear()Clears all cached queries. | 
| PreparedQuery | get(String id)Get the PreparedQuery with the given identifier if it exists. null
 otherwise. | 
| boolean | getEnableStatistics()Affirm if statistics is gathered. | 
| List<PreparedQueryCache.Exclusion> | getExcludes()Gets the exclusion patterns. | 
| Map<String,String> | getMapView()Get a map view of the cached queries indexed by identifier. | 
| QueryStatistics<String> | getStatistics()Gets the simple statistics for executed queries. | 
| PreparedQuery | initialize(String key,
          Object executionResult)Initialize the cached Prepared Query registered with the given
 key earlier by the given execution result. | 
| boolean | invalidate(String id)Remove the PreparedQuery with the given identifier from this cache. | 
| Boolean | isCachable(String id)Affirms if a PreparedQuery can be cached against the given key. | 
| PreparedQueryCache.Exclusion | isExcluded(String id)Returns the exclusion status of if the given query key. | 
| PreparedQuery | markUncachable(String id,
              PreparedQueryCache.Exclusion exclusion)Marks the given key as not amenable to caching. | 
| Boolean | register(String key,
        Query query,
        FetchConfiguration hints)Register the given query for caching against the given key if it has not 
 already been cached. | 
| void | removeExclusionPattern(String pattern)Removes the given pattern from the list of excluded patterns. | 
| void | setEnableStatistics(boolean enable)Enable/disable gathering of statistics. | 
| void | setExcludes(String excludes)Sets one or more exclusion regular expression patterns separated by 
 semicolon. | 
endConfiguration, setConfiguration, startConfigurationBoolean register(String key, Query query, FetchConfiguration hints)
PreparedQuery initialize(String key, Object executionResult)
key - the key used during registrationexecutionResult - an opaque instance carrying the execution result 
 of the original query.Map<String,String> getMapView()
boolean cache(PreparedQuery q)
#markUncachable(String), 
setExcludes(String), 
addExclusionPattern(String)boolean invalidate(String id)
PreparedQuery get(String id)
Boolean isCachable(String id)
PreparedQuery markUncachable(String id, PreparedQueryCache.Exclusion exclusion)
id - is the key to be excludedexclusion - directs whether exclusion is irreversible or not.PreparedQueryCache.Exclusion isExcluded(String id)
List<PreparedQueryCache.Exclusion> getExcludes()
void setExcludes(String excludes)
void addExclusionPattern(String pattern)
void removeExclusionPattern(String pattern)
markUncachable(String, Exclusion)void clear()
void setEnableStatistics(boolean enable)
boolean getEnableStatistics()
QueryStatistics<String> getStatistics()
Copyright © 2006–2018 Apache Software Foundation. All rights reserved.