Package org.apache.ibatis.cache
Interface Cache
- All Known Implementing Classes:
BlockingCache,FifoCache,LoggingCache,LruCache,PerpetualCache,ScheduledCache,SerializedCache,SoftCache,SynchronizedCache,TransactionalCache,WeakCache
public interface Cache
SPI for cache providers.
One instance of cache will be created for each namespace.
The cache implementation must have a constructor that receives the cache id as an String parameter.
MyBatis will pass the namespace as id to the constructor.
public MyCache(final String id) {
if (id == null) {
throw new IllegalArgumentException("Cache instances require an ID");
}
this.id = id;
initialize();
}
- Author:
- Clinton Begin
-
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Clears this cache instance.getId()default ReadWriteLockOptional.intgetSize()Optional.voidremoveObject(Object key) As of 3.3.0 this method is only called during a rollback for any previous value that was missing in the cache.
-
Method Details
-
getId
String getId()- Returns:
- The identifier of this cache
-
putObject
- Parameters:
key- Can be any object but usually it is aCacheKeyvalue- The result of a select.
-
getObject
- Parameters:
key- The key- Returns:
- The object stored in the cache.
-
removeObject
As of 3.3.0 this method is only called during a rollback for any previous value that was missing in the cache. This lets any blocking cache to release the lock that may have previously put on the key. A blocking cache puts a lock when a value is null and releases it when the value is back again. This way other threads will wait for the value to be available instead of hitting the database.- Parameters:
key- The key- Returns:
- Not used
-
clear
void clear()Clears this cache instance. -
getSize
int getSize()Optional. This method is not called by the core.- Returns:
- The number of elements stored in the cache (not its capacity).
-
getReadWriteLock
Optional. As of 3.2.6 this method is no longer called by the core.Any locking needed by the cache must be provided internally by the cache provider.
- Returns:
- A ReadWriteLock
-