Interface IdentityMapAccessor
For instance, to initialize identity maps the code used to be:
session.initializeIdentityIdentityMaps()
With this class, the code now is:
session.getIdentityMapAccessor().initializeIdentityMaps()
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
ADVANCED: Clear all the query cachesvoid
clearQueryCache
(String sessionQueryName) ADVANCED: Clear the query cache associated with the named query on the session.void
clearQueryCache
(String descriptorQueryName, Class queryClass) ADVANCED: Clear the query cache associated with the named query on the descriptor for the given class.void
clearQueryCache
(ReadQuery query) ADVANCED: Clear the query class associated with the passed-in read query.boolean
containsObjectInIdentityMap
(Object domainObject) ADVANCED: Returns true if the identity map contains an Object with the same primary key and Class type of the given domainObject.boolean
containsObjectInIdentityMap
(Object primaryKey, Class theClass) ADVANCED: Returns true if the identity map contains an Object with the same primary key and Class type as those specified.boolean
containsObjectInIdentityMap
(Record rowContainingPrimaryKey, Class theClass) ADVANCED: Returns true if the identity map contains an Object with the same primary key of the specified row (i.e.getAllFromIdentityMap
(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy) ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects.getAllFromIdentityMap
(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects.getAllFromIdentityMap
(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects.getAllFromIdentityMap
(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy, boolean shouldReturnInvalidatedObjects) ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects.getFromIdentityMap
(Object domainObject) ADVANCED: Returns the Object from the identity map with the same primary key and Class type of the given domainObject.getFromIdentityMap
(Object primaryKey, Class theClass) ADVANCED: Returns the Object from the identity map with the same primary key and Class type as those specified.getFromIdentityMap
(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects) ADVANCED: Returns the Object from the identity map with the same primary key and Class type as specified.getFromIdentityMap
(Expression selectionCriteria, Class theClass, Record translationRow) ADVANCED: Queries the cache in-memory and returns an Object from this identity map.getFromIdentityMap
(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy) ADVANCED: Queries the cache in-memory and returns an Object from this identity map.getFromIdentityMap
(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) ADVANCED: Queries the cache in-memory and returns an Object from this identity map.getFromIdentityMap
(Record rowContainingPrimaryKey, Class theClass) ADVANCED: Returns the Object from the identity map with the same primary key of the specified row (i.e.getFromIdentityMap
(Record rowContainingPrimaryKey, Class theClass, boolean shouldReturnInvalidatedObjects) ADVANCED: Returns the Object from the identity map with the same primary key of the specified row and Class type.long
getRemainingValidTime
(Object object) ADVANCED: Returns the remaining life of the given Object.getWriteLockValue
(Object domainObject) ADVANCED: Extracts and returns the write lock value from the identity map through the given Object.getWriteLockValue
(Object primaryKey, Class theClass) ADVANCED: Extracts the write lock value from the identity map through the passed in primaryKey and Class type.void
PUBLIC: Resets the entire Object cache.void
initializeIdentityMap
(Class theClass) PUBLIC: Resets the identity map for only the instances of the given Class type.void
PUBLIC: Resets the entire local Object cache.void
ADVANCED: Sets all of the Objects for all classes to be invalid in the cache.void
invalidateClass
(Class theClass) ADVANCED: Sets all of the Objects of the specified Class type to be invalid in the cache.void
invalidateClass
(Class theClass, boolean recurse) ADVANCED: Sets all of the Objects of the specified Class type to be invalid in the cache.void
invalidateObject
(Object object) ADVANCED: Sets an Object to be invalid in the cache.void
invalidateObject
(Object object, boolean invalidateCluster) ADVANCED: Set an object to be invalid in the cache.void
invalidateObject
(Object primaryKey, Class theClass) ADVANCED: Sets an Object with the specified primary key and Class type to be invalid in the cache.void
invalidateObject
(Object primaryKey, Class theClass, boolean invalidateCluster) ADVANCED: Set an object to be invalid in the cache.void
invalidateObject
(Record rowContainingPrimaryKey, Class theClass) ADVANCED: Sets an Object with the specified primary key of the passed in Row and Class type to be invalid in the cache.void
invalidateObject
(Record rowContainingPrimaryKey, Class theClass, boolean invalidateCluster) ADVANCED: Set an object to be invalid in the cache.void
invalidateObjects
(Collection collection) ADVANCED: Sets all of the Objects in the given collection to be invalid in the TopLink identity maps.void
invalidateObjects
(Collection collection, boolean invalidateCluster) ADVANCED: Set all of the objects in the given collection to be invalid in the cache.void
invalidateObjects
(Expression selectionCriteria) ADVANCED: Sets all of the Objects matching the given Expression to be invalid in the cache.void
invalidateObjects
(Expression selectionCriteria, Class theClass, Record translationRow, boolean shouldInvalidateOnException) ADVANCED: Queries the cache in-memory with the passed in criteria and invalidates matching Objects.void
invalidateQueryCache
(Class classThatChanged) ADVANCED: Invalidate/remove any results for any query for the class from the query cache.boolean
ADVANCED: Returns true if an Object with the same primary key and Class type of the the given Object is valid in the cache.boolean
ADVANCED: Returns true if the Object described by the given primary key and Class type is valid in the cache.boolean
ADVANCED: Returns true if this Object with the given primary key of the Row and Class type given is valid in the cache.void
printIdentityMap
(Class theClass) PUBLIC: Used to print all the Objects in the identity map of the given Class type.void
PUBLIC: Used to print all the locks in every identity map in this session.void
PUBLIC: Used to print all the Objects in every identity map in this session.putInIdentityMap
(Object domainObject) ADVANCED: Registers the given Object with the identity map.putInIdentityMap
(Object domainObject, Object key) ADVANCED: Registers the Object and given key with the identity map.putInIdentityMap
(Object domainObject, Object key, Object writeLockValue) ADVANCED: Registers the Object and given key with the identity map.putInIdentityMap
(Object domainObject, Object key, Object writeLockValue, long readTime) ADVANCED: Registers the given Object with the identity map.removeFromIdentityMap
(Object domainObject) ADVANCED: Removes the Object from the Object cache.removeFromIdentityMap
(Object key, Class theClass) ADVANCED: Removes the Object with given primary key and Class from the Object cache.void
updateWriteLockValue
(Object primaryKey, Class theClass, Object writeLockValue) ADVANCED: Updates the write lock value in the cache for the Object with same primary key as the given Object.void
updateWriteLockValue
(Object domainObject, Object writeLockValue) ADVANCED: Updates the write lock value in the identity map for cache key of the primary key the given Object.void
ADVANCED: This can be used to help debugging an Object identity problem.
-
Method Details
-
clearQueryCache
void clearQueryCache()ADVANCED: Clear all the query caches -
clearQueryCache
ADVANCED: Clear the query class associated with the passed-in read query. -
clearQueryCache
ADVANCED: Clear the query cache associated with the named query on the session. -
clearQueryCache
ADVANCED: Clear the query cache associated with the named query on the descriptor for the given class. -
invalidateQueryCache
ADVANCED: Invalidate/remove any results for any query for the class from the query cache. This is used to invalidate the query cache on any change. -
containsObjectInIdentityMap
ADVANCED: Returns true if the identity map contains an Object with the same primary key and Class type of the given domainObject. -
containsObjectInIdentityMap
ADVANCED: Returns true if the identity map contains an Object with the same primary key and Class type as those specified. -
containsObjectInIdentityMap
ADVANCED: Returns true if the identity map contains an Object with the same primary key of the specified row (i.e. the database record) and Class type. -
getAllFromIdentityMap
Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects. If the expression is too complex an exception will be thrown. Only returns Objects that are invalid from the map if specified with the boolean shouldReturnInvalidatedObjects.- Parameters:
selectionCriteria
- Expression selecting the Objects to be returnedtheClass
- Class to be consideredtranslationRow
- RecordvalueHolderPolicy
- seeInMemoryQueryIndirectionPolicy
shouldReturnInvalidatedObjects
- boolean - true if only invalid Objects should be returned- Returns:
- Vector of Objects
- Throws:
QueryException
-
getAllFromIdentityMap
Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects. If the expression is too complex an exception will be thrown. Only returns Objects that are invalid from the map if specified with the boolean shouldReturnInvalidatedObjects.- Parameters:
selectionCriteria
- Expression selecting the Objects to be returnedtheClass
- Class to be consideredtranslationRow
- RecordvalueHolderPolicy
- seeInMemoryQueryIndirectionPolicy
shouldReturnInvalidatedObjects
- boolean - true if only invalid Objects should be returned- Returns:
- Vector of Objects
- Throws:
QueryException
-
getAllFromIdentityMap
Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects. If the expression is too complex an exception will be thrown.- Parameters:
selectionCriteria
- Expression selecting the Objects to be returnedtheClass
- Class to be consideredtranslationRow
- RecordvalueHolderPolicy
- seeInMemoryQueryIndirectionPolicy
- Returns:
- Vector of Objects with type theClass and matching the selectionCriteria
- Throws:
QueryException
-
getAllFromIdentityMap
Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy) throws QueryException ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects. If the expression is too complex an exception will be thrown.- Parameters:
selectionCriteria
- Expression selecting the Objects to be returnedtheClass
- Class to be consideredtranslationRow
- RecordvalueHolderPolicy
- seeInMemoryQueryIndirectionPolicy
- Returns:
- Vector of Objects with type theClass and matching the selectionCriteria
- Throws:
QueryException
-
getFromIdentityMap
ADVANCED: Returns the Object from the identity map with the same primary key and Class type of the given domainObject.- Parameters:
domainObject
- Object- Returns:
- Object from identity map, may be null.
-
getFromIdentityMap
ADVANCED: Returns the Object from the identity map with the same primary key and Class type as those specified.- Returns:
- Object from identity map, may be null.
-
getFromIdentityMap
ADVANCED: Returns the Object from the identity map with the same primary key of the specified row (i.e. the database record) and Class type.- Parameters:
rowContainingPrimaryKey
- RecordtheClass
- Class- Returns:
- Object from identity map, may be null.
-
getFromIdentityMap
Object getFromIdentityMap(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects) ADVANCED: Returns the Object from the identity map with the same primary key and Class type as specified. May return null and will only return an Object that is invalidated if specified with the boolean shouldReturnInvalidatedObjects.- Returns:
- Object from identity map, may be null.
-
getFromIdentityMap
Object getFromIdentityMap(Record rowContainingPrimaryKey, Class theClass, boolean shouldReturnInvalidatedObjects) ADVANCED: Returns the Object from the identity map with the same primary key of the specified row and Class type. May return null and will only Only return an Object that is invalidated if specified with the boolean shouldReturnInvalidatedObjects.- Parameters:
rowContainingPrimaryKey
- RecordtheClass
- ClassshouldReturnInvalidatedObjects
- boolean- Returns:
- Object from identity map, may be null.
-
getFromIdentityMap
Object getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow) throws QueryException ADVANCED: Queries the cache in-memory and returns an Object from this identity map. If the Object is not found with the passed in Class type, Row and selectionCriteria, null is returned. If the expression is too complex an exception will be thrown.- Parameters:
selectionCriteria
- ExpressiontheClass
- ClasstranslationRow
- Record- Returns:
- Object from identity map, may be null
- Throws:
QueryException
-
getFromIdentityMap
Object getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException ADVANCED: Queries the cache in-memory and returns an Object from this identity map. If the Object is not found with the passed in Class type, Row and selectionCriteria, null is returned. This method allows for control of un-instantiated indirection access with valueHolderPolicy. If the expression is too complex an exception will be thrown.- Parameters:
selectionCriteria
- ExpressiontheClass
- ClasstranslationRow
- RecordvalueHolderPolicy
- seeInMemoryQueryIndirectionPolicy
- Returns:
- Object from identity map, may be null
- Throws:
QueryException
-
getFromIdentityMap
Object getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy) throws QueryException ADVANCED: Queries the cache in-memory and returns an Object from this identity map. If the Object is not found with the passed in Class type, Row and selectionCriteria, null is returned. This method allows for control of un-instantiated indirection access with valueHolderPolicy. If the expression is too complex an exception will be thrown.- Parameters:
selectionCriteria
- ExpressiontheClass
- ClasstranslationRow
- RecordvalueHolderPolicy
- seeInMemoryQueryIndirectionPolicy
- Returns:
- Object from identity map, may be null
- Throws:
QueryException
-
getRemainingValidTime
ADVANCED: Returns the remaining life of the given Object. This method is associated with use of cache invalidation feature and returns the difference between the next expiry time of the Object and its read time. The method will return 0 for invalidated Objects.- Parameters:
object
- Object under consideration- Returns:
- long time in milliseconds
-
getWriteLockValue
ADVANCED: Extracts and returns the write lock value from the identity map through the given Object. Write lock values are used when optimistic locking is stored in the cache instead of the object.- Parameters:
domainObject
- Object- Returns:
- Object for versioning
-
getWriteLockValue
ADVANCED: Extracts the write lock value from the identity map through the passed in primaryKey and Class type. Write lock values are used when optimistic locking is stored in the cache instead of the object. -
initializeAllIdentityMaps
void initializeAllIdentityMaps()PUBLIC: Resets the entire Object cache.NOTE: Be careful using this method. This method blows away both this session's and its parent's caches. This includes the server cache or any other cache. This throws away any Objects that have been read in. Extreme caution should be used before doing this because Object identity will no longer be maintained for any Objects currently read in. This should only be called if the application knows that it no longer has references to Objects held in the cache.
-
initializeIdentityMap
PUBLIC: Resets the identity map for only the instances of the given Class type. For inheritance the user must make sure that they only use the root class.NOTE: Caution must be used in doing this to ensure that the Objects within the identity map are not referenced from other Objects of other classes or from the application.
- Parameters:
theClass
- Class
-
initializeIdentityMaps
void initializeIdentityMaps()PUBLIC: Resets the entire local Object cache.NOTE: This throws away any Objects that have been read in. Extreme caution should be used before doing this because Object identity will no longer be maintained for any Objects currently read in. This should only be called if the application knows that it no longer has references to Objects held in the cache.
-
invalidateObject
ADVANCED: Sets an Object to be invalid in the cache. If this Object does not exist in the cache, this method will return without any action.- Parameters:
object
- Object
-
invalidateObject
ADVANCED: Set an object to be invalid in the cache.- Parameters:
invalidateCluster
- if true the invalidation will be broadcast to each server in the cluster.
-
invalidateObject
ADVANCED: Sets an Object with the specified primary key and Class type to be invalid in the cache. If the Object does not exist in the cache, this method will return without any action. -
invalidateObject
ADVANCED: Set an object to be invalid in the cache.- Parameters:
invalidateCluster
- if true the invalidation will be broadcast to each server in the cluster.
-
invalidateObject
ADVANCED: Sets an Object with the specified primary key of the passed in Row and Class type to be invalid in the cache. If the Object does not exist in the cache, this method will return without any action. -
invalidateObject
ADVANCED: Set an object to be invalid in the cache.- Parameters:
invalidateCluster
- if true the invalidation will be broadcast to each server in the cluster.
-
invalidateObjects
ADVANCED: Sets all of the Objects in the given collection to be invalid in the TopLink identity maps. This method will take no action for any Objects in the collection that do not exist in the cache.- Parameters:
collection
- objects to be invalidated
-
invalidateObjects
ADVANCED: Set all of the objects in the given collection to be invalid in the cache.- Parameters:
invalidateCluster
- if true the invalidation will be broadcast to each server in the cluster.
-
invalidateObjects
ADVANCED: Sets all of the Objects matching the given Expression to be invalid in the cache.Example - Invalidating Employee Objects with non-null first names:
ExpressionBuilder eb = new ExpressionBuilder(Employee.class);
Expression exp = eb.get("firstName").notNull();
session.getIdentityMapAccessor().invalidateObjects(exp);
- Parameters:
selectionCriteria
- Expression
-
invalidateObjects
void invalidateObjects(Expression selectionCriteria, Class theClass, Record translationRow, boolean shouldInvalidateOnException) ADVANCED: Queries the cache in-memory with the passed in criteria and invalidates matching Objects. If the expression is too complex either all or none object of theClass invalidated (depending on shouldInvalidateOnException value).- Parameters:
selectionCriteria
- Expression selecting the Objects to be returnedtheClass
- Class to be consideredtranslationRow
- RecordshouldInvalidateOnException
- boolean indicates weather to invalidate the object if conform threw exception.
-
invalidateAll
void invalidateAll()ADVANCED: Sets all of the Objects for all classes to be invalid in the cache. It will recurse on inheritance. -
invalidateClass
ADVANCED: Sets all of the Objects of the specified Class type to be invalid in the cache. Will set the recurse on inheritance to true. -
invalidateClass
ADVANCED: Sets all of the Objects of the specified Class type to be invalid in the cache. User can set the recurse flag to false if they do not want to invalidate all the same Class types within an inheritance tree.- Parameters:
theClass
- Classrecurse
- boolean
-
isValid
ADVANCED: Returns true if an Object with the same primary key and Class type of the the given Object is valid in the cache. -
isValid
ADVANCED: Returns true if the Object described by the given primary key and Class type is valid in the cache. -
isValid
ADVANCED: Returns true if this Object with the given primary key of the Row and Class type given is valid in the cache. -
printIdentityMap
PUBLIC: Used to print all the Objects in the identity map of the given Class type. The output of this method will be logged to this session's SessionLog at SEVERE level. -
printIdentityMaps
void printIdentityMaps()PUBLIC: Used to print all the Objects in every identity map in this session. The output of this method will be logged to this session's SessionLog at SEVERE level. -
printIdentityMapLocks
void printIdentityMapLocks()PUBLIC: Used to print all the locks in every identity map in this session. The output of this method will be logged to this session's SessionLog at FINEST level. -
putInIdentityMap
ADVANCED: Registers the given Object with the identity map. The Object must always be registered with its version number if optimistic locking is used.- Parameters:
domainObject
- Object- Returns:
- Object
-
putInIdentityMap
ADVANCED: Registers the Object and given key with the identity map. The Object must always be registered with its version number if optimistic locking is used. -
putInIdentityMap
ADVANCED: Registers the Object and given key with the identity map. The Object must always be registered with its version number if optimistic locking is used. -
putInIdentityMap
ADVANCED: Registers the given Object with the identity map. The Object must always be registered with its version number if optimistic locking is used. The readTime may also be included in the cache key as it is constructed.- Parameters:
domainObject
- Objectkey
- ObjectwriteLockValue
- Object for versioningreadTime
- long, time in milliseconds- Returns:
- Object the Object put into the identity map
-
removeFromIdentityMap
ADVANCED: Removes the Object from the Object cache.NOTE: Caution should be used when calling to avoid violating Object identity. The application should only call this if its known that no references to the Object exist.
- Parameters:
domainObject
- Object- Returns:
- Object the Object removed from the identity map
-
removeFromIdentityMap
ADVANCED: Removes the Object with given primary key and Class from the Object cache.NOTE: Caution should be used when calling to avoid violating Object identity. The application should only call this if its known that no references to the Object exist.
- Returns:
- Object the Object removed from the identity map
-
updateWriteLockValue
ADVANCED: Updates the write lock value in the identity map for cache key of the primary key the given Object.- Parameters:
domainObject
- ObjectwriteLockValue
- Object for versioning
-
updateWriteLockValue
ADVANCED: Updates the write lock value in the cache for the Object with same primary key as the given Object. The write lock values is used when optimistic locking is stored in the cache instead of in the object. -
validateCache
void validateCache()ADVANCED: This can be used to help debugging an Object identity problem. An Object identity problem is when an Object in the cache references an Object that is not in the cache. This method will validate that all cached Objects are in a correct state.
-