Class TransactionalCache
- java.lang.Object
-
- org.apache.ibatis.cache.decorators.TransactionalCache
-
- All Implemented Interfaces:
Cache
public class TransactionalCache extends Object implements Cache
The 2nd level cache transactional buffer.This class holds all cache entries that are to be added to the 2nd level cache during a Session. Entries are sent to the cache when commit is called or discarded if the Session is rolled back. Blocking cache support has been added. Therefore any get() that returns a cache miss will be followed by a put() so any lock associated with the key can be released.
- Author:
- Clinton Begin, Eduardo Macarron
-
-
Constructor Summary
Constructors Constructor Description TransactionalCache(Cache delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Clears this cache instance.voidcommit()StringgetId()ObjectgetObject(Object key)intgetSize()Optional.voidputObject(Object key, Object object)ObjectremoveObject(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.voidrollback()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.ibatis.cache.Cache
getReadWriteLock
-
-
-
-
Constructor Detail
-
TransactionalCache
public TransactionalCache(Cache delegate)
-
-
Method Detail
-
getId
public String getId()
-
getSize
public int getSize()
Description copied from interface:CacheOptional. This method is not called by the core.
-
removeObject
public Object removeObject(Object key)
Description copied from interface:CacheAs 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.- Specified by:
removeObjectin interfaceCache- Parameters:
key- The key- Returns:
- Not used
-
clear
public void clear()
Description copied from interface:CacheClears this cache instance.
-
commit
public void commit()
-
rollback
public void rollback()
-
-