// check if it conforms. Failure of this object to conform however does not
// rule out a cache hit.
Vector inexactSelectionKey = descriptor.getObjectBuilder().extractPrimaryKeyFromExpression(false, selectionCriteria, translationRow, session);// Check for any primary key in expression, may have other stuff.
if (inexactSelectionKey != null) {
// PERF: Only use deferred lock when required.
if (descriptor.shouldAcquireCascadedLocks()) {
cachedObject = session.getIdentityMapAccessorInstance().getFromIdentityMapWithDeferredLock(inexactSelectionKey, query.getReferenceClass(), false, descriptor);
} else {
cachedObject = session.getIdentityMapAccessorInstance().getFromIdentityMap(inexactSelectionKey, query.getReferenceClass(), false, descriptor);
}
if (cachedObject != null) {