| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface PreparedQueryCache
A cache to create and maintain 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)| Nested Class Summary | |
|---|---|
| static interface | PreparedQueryCache.ExclusionA structure to describe the strength and reason for excluding a query from the cache. | 
| Method Summary | |
|---|---|
|  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. | 
|  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. | 
| Methods inherited from interface org.apache.openjpa.lib.conf.Configurable | 
|---|
| endConfiguration, setConfiguration, startConfiguration | 
| Method Detail | 
|---|
Boolean 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()
| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||