Class UnitOfWorkIdentityMap
- java.lang.Object
-
- org.eclipse.persistence.internal.identitymaps.AbstractIdentityMap
-
- org.eclipse.persistence.internal.identitymaps.FullIdentityMap
-
- org.eclipse.persistence.internal.identitymaps.UnitOfWorkIdentityMap
-
- All Implemented Interfaces:
Serializable
,Cloneable
,IdentityMap
- Direct Known Subclasses:
WeakUnitOfWorkIdentityMap
public class UnitOfWorkIdentityMap extends FullIdentityMap
Unit of work specific identity map which avoid additional overhead not required in unit of work, such as locking and synchronization.- Since:
- TopLink 10.1.3.1
- Author:
- James Sutherland
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.internal.identitymaps.FullIdentityMap
cacheKeys
-
Fields inherited from class org.eclipse.persistence.internal.identitymaps.AbstractIdentityMap
descriptor, isIsolated, maxSize, session
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
UnitOfWorkIdentityMap()
UnitOfWorkIdentityMap(int size, ClassDescriptor descriptor, AbstractSession session, boolean isolated)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CacheKey
acquireDeferredLock(Object primaryKey, boolean isCacheCheckComplete)
Avoid acquiring any lock as uow is single threaded.CacheKey
acquireLock(Object primaryKey, boolean forMerge, boolean isCacheCheckComplete)
Avoid acquiring any lock as uow is single threaded.CacheKey
acquireLockNoWait(Object primaryKey, boolean forMerge)
Avoid acquiring any lock as uow is single threaded.CacheKey
acquireLockWithWait(Object primaryKey, boolean forMerge, int wait)
Avoid acquiring any lock as uow is single threaded.CacheKey
acquireReadLockOnCacheKey(Object primaryKey)
Avoid acquiring any lock as uow is single threaded.CacheKey
acquireReadLockOnCacheKeyNoWait(Object primaryKey)
Avoid acquiring any lock as uow is single threaded.CacheKey
createCacheKey(Object primaryKey, Object object, Object writeLockValue, long readTime)
Create the correct type of CacheKey for this map.protected CacheKey
getCacheKeyWithReadLock(Object primaryKey)
Avoid acquiring any lock as uow is single threaded.protected CacheKey
putCacheKeyIfAbsent(CacheKey searchKey)
Use hashmap put, as no concurrency in unit of work.Object
remove(CacheKey cacheKey)
Avoid acquiring any lock as uow is single threaded.void
resetCacheKey(CacheKey key, Object object, Object writeLockValue, long readTime)
Avoid acquiring any lock as uow is single threaded.void
setWriteLockValue(Object primaryKey, Object writeLockValue)
Avoid acquiring any lock as uow is single threaded.-
Methods inherited from class org.eclipse.persistence.internal.identitymaps.FullIdentityMap
clone, cloneKeys, collectLocks, elements, getCacheKey, getCacheKeys, getSize, getSize, keys, keys, lazyRelationshipLoaded, put, setCacheKeys
-
Methods inherited from class org.eclipse.persistence.internal.identitymaps.AbstractIdentityMap
containsKey, get, getAllCacheKeysFromIdentityMapWithEntityPK, getAllFromIdentityMapWithEntityPK, getCacheKeyForLock, getDefaultIdentityMapClass, getDescriptor, getDescriptorClass, getMaxSize, getWrapper, getWriteLockValue, release, remove, setDescriptor, setMaxSize, setWrapper, toString, updateMaxSize
-
-
-
-
Constructor Detail
-
UnitOfWorkIdentityMap
protected UnitOfWorkIdentityMap()
-
UnitOfWorkIdentityMap
public UnitOfWorkIdentityMap(int size, ClassDescriptor descriptor, AbstractSession session, boolean isolated)
-
-
Method Detail
-
createCacheKey
public CacheKey createCacheKey(Object primaryKey, Object object, Object writeLockValue, long readTime)
Description copied from class:AbstractIdentityMap
Create the correct type of CacheKey for this map.- Overrides:
createCacheKey
in classAbstractIdentityMap
-
acquireDeferredLock
public CacheKey acquireDeferredLock(Object primaryKey, boolean isCacheCheckComplete)
Avoid acquiring any lock as uow is single threaded.- Specified by:
acquireDeferredLock
in interfaceIdentityMap
- Overrides:
acquireDeferredLock
in classAbstractIdentityMap
-
acquireLock
public CacheKey acquireLock(Object primaryKey, boolean forMerge, boolean isCacheCheckComplete)
Avoid acquiring any lock as uow is single threaded.- Specified by:
acquireLock
in interfaceIdentityMap
- Overrides:
acquireLock
in classAbstractIdentityMap
-
acquireLockNoWait
public CacheKey acquireLockNoWait(Object primaryKey, boolean forMerge)
Avoid acquiring any lock as uow is single threaded.- Specified by:
acquireLockNoWait
in interfaceIdentityMap
- Overrides:
acquireLockNoWait
in classAbstractIdentityMap
-
acquireLockWithWait
public CacheKey acquireLockWithWait(Object primaryKey, boolean forMerge, int wait)
Avoid acquiring any lock as uow is single threaded.- Specified by:
acquireLockWithWait
in interfaceIdentityMap
- Overrides:
acquireLockWithWait
in classAbstractIdentityMap
-
acquireReadLockOnCacheKey
public CacheKey acquireReadLockOnCacheKey(Object primaryKey)
Avoid acquiring any lock as uow is single threaded.- Specified by:
acquireReadLockOnCacheKey
in interfaceIdentityMap
- Overrides:
acquireReadLockOnCacheKey
in classAbstractIdentityMap
-
acquireReadLockOnCacheKeyNoWait
public CacheKey acquireReadLockOnCacheKeyNoWait(Object primaryKey)
Avoid acquiring any lock as uow is single threaded.- Specified by:
acquireReadLockOnCacheKeyNoWait
in interfaceIdentityMap
- Overrides:
acquireReadLockOnCacheKeyNoWait
in classAbstractIdentityMap
-
getCacheKeyWithReadLock
protected CacheKey getCacheKeyWithReadLock(Object primaryKey)
Avoid acquiring any lock as uow is single threaded.- Overrides:
getCacheKeyWithReadLock
in classAbstractIdentityMap
-
putCacheKeyIfAbsent
protected CacheKey putCacheKeyIfAbsent(CacheKey searchKey)
Use hashmap put, as no concurrency in unit of work.- Overrides:
putCacheKeyIfAbsent
in classFullIdentityMap
-
remove
public Object remove(CacheKey cacheKey)
Avoid acquiring any lock as uow is single threaded.- Specified by:
remove
in interfaceIdentityMap
- Overrides:
remove
in classFullIdentityMap
- Returns:
- the object held within the CacheKey or null if no object cached for given cacheKey.
-
resetCacheKey
public void resetCacheKey(CacheKey key, Object object, Object writeLockValue, long readTime)
Avoid acquiring any lock as uow is single threaded.- Overrides:
resetCacheKey
in classFullIdentityMap
-
setWriteLockValue
public void setWriteLockValue(Object primaryKey, Object writeLockValue)
Avoid acquiring any lock as uow is single threaded.- Specified by:
setWriteLockValue
in interfaceIdentityMap
- Overrides:
setWriteLockValue
in classAbstractIdentityMap
-
-