@Target(value={METHOD,TYPE}) @Retention(value=RUNTIME) public @interface CacheRemoveAll
CacheRemoveAll
is invoked all elements in the specified cache
will be removed via the Cache.removeAll()
method
The default behavior is to call Cache.removeAll()
after the annotated method is invoked,
this behavior can be changed by setting afterInvocation()
to false in which case Cache.removeAll()
will be called before the annotated method is invoked.
Example of removing all Domain objects from the "domainCache". Cache.removeAll()
will be called after deleteAllDomains() returns successfully.
Exception Handling, only used ifpackage my.app; public class DomainDao { @CacheRemoveAll(cacheName="domainCache") public void deleteAllDomains() { ... } }
afterInvocation()
is true.
evictFor()
and noEvictFor()
are both empty then all exceptions prevent the removeAllevictFor()
is specified and noEvictFor()
is not specified then only exceptions
which pass an instanceof check against the evictFor list result in a removeAllnoEvictFor()
is specified and evictFor()
is not specified then all exceptions
which do not pass an instanceof check against the noEvictFor result in a removeAllevictFor()
and noEvictFor()
are both specified then exceptions which pass an
instanceof check against the evictFor list but do not pass an instanceof check against the noEvictFor
list result in a removeAllModifier and Type | Optional Element and Description |
---|---|
boolean |
afterInvocation
When
Cache.removeAll() should be called. |
String |
cacheName
The name of the cache.
|
Class<? extends CacheResolverFactory> |
cacheResolverFactory
The
CacheResolverFactory used to find the CacheResolver to use at runtime. |
Class<? extends Throwable>[] |
evictFor
|
Class<? extends Throwable>[] |
noEvictFor
|
public abstract String cacheName
CacheDefaults.cacheName()
an if that is not set it
a CacheAnnotationConfigurationException
will be thrown by the provider.public abstract boolean afterInvocation
Cache.removeAll()
should be called. If true it is called after the annotated method
invocation completes successfully. If false it is called before the annotated method is invoked.
Defaults to true.
If true and the annotated method throws an exception the put will not be executed.public abstract Class<? extends CacheResolverFactory> cacheResolverFactory
CacheResolverFactory
used to find the CacheResolver
to use at runtime.
The default resolver pair will resolve the cache by name from the default CacheManager
public abstract Class<? extends Throwable>[] evictFor
classes
, which must be a
subclass of Throwable
, indicating which exception types must cause
a cache removeAll. Only used if afterInvocation()
is true.public abstract Class<? extends Throwable>[] noEvictFor
Classes
, which must be a
subclass of Throwable
, indicating which exception types must not
cause a cache removeAll. Only used if afterInvocation()
is true.Copyright © 2013. All Rights Reserved.