Class TransactionalCache
java.lang.Object
org.apache.ibatis.cache.decorators.TransactionalCache
- All Implemented Interfaces:
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 Details
-
TransactionalCache
-
-
Method Details
-
getId
-
getSize
public int getSize()Description copied from interface:Cache
Optional. This method is not called by the core. -
getObject
-
putObject
-
removeObject
Description copied from interface:Cache
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.- Specified by:
removeObject
in interfaceCache
- Parameters:
key
- The key- Returns:
- Not used
-
clear
public void clear()Description copied from interface:Cache
Clears this cache instance. -
commit
public void commit() -
rollback
public void rollback()
-