Class WeakCache
- java.lang.Object
-
- org.apache.ibatis.cache.decorators.WeakCache
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
WeakCache.WeakEntry
-
Field Summary
Fields Modifier and Type Field Description private Cache
delegate
private java.util.Deque<java.lang.Object>
hardLinksToAvoidGarbageCollection
private int
numberOfHardLinks
private java.lang.ref.ReferenceQueue<java.lang.Object>
queueOfGarbageCollectedEntries
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Clears this cache instance.java.lang.String
getId()
java.lang.Object
getObject(java.lang.Object key)
int
getSize()
Optional.void
putObject(java.lang.Object key, java.lang.Object value)
private void
removeGarbageCollectedItems()
java.lang.Object
removeObject(java.lang.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.void
setSize(int size)
-
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
-
-
-
-
Field Detail
-
hardLinksToAvoidGarbageCollection
private final java.util.Deque<java.lang.Object> hardLinksToAvoidGarbageCollection
-
queueOfGarbageCollectedEntries
private final java.lang.ref.ReferenceQueue<java.lang.Object> queueOfGarbageCollectedEntries
-
delegate
private final Cache delegate
-
numberOfHardLinks
private int numberOfHardLinks
-
-
Constructor Detail
-
WeakCache
public WeakCache(Cache delegate)
-
-
Method Detail
-
getId
public java.lang.String getId()
-
getSize
public int getSize()
Description copied from interface:Cache
Optional. This method is not called by the core.
-
setSize
public void setSize(int size)
-
putObject
public void putObject(java.lang.Object key, java.lang.Object value)
-
getObject
public java.lang.Object getObject(java.lang.Object key)
-
removeObject
public java.lang.Object removeObject(java.lang.Object key)
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.
-
removeGarbageCollectedItems
private void removeGarbageCollectedItems()
-
-