docs: public Object doGetObjectByIdentity(Identity id) throws PersistenceBrokerException
      {
          if (logger.isDebugEnabled()) logger.debug("getObjectByIdentity " + id);
  
          // check if object is present in ObjectCache:
          Object obj = objectCache.lookup(id);
          // only perform a db lookup if necessary (object not cached yet)
          if (obj == null)
          {
              obj = getDBObject(id);
          }
          else
          {
              ClassDescriptor cld = getClassDescriptor(obj.getClass());
              // if specified in the ClassDescriptor the instance must be refreshed
              if (cld.isAlwaysRefresh())
              {
                  refreshInstance(obj, id, cld);
              }
              // now refresh all references
              checkRefreshRelationships(obj, id, cld);
          }
  
          // Invoke events on PersistenceBrokerAware instances and listeners
          AFTER_LOOKUP_EVENT.setTarget(obj);
          fireBrokerEvent(AFTER_LOOKUP_EVENT);
          AFTER_LOOKUP_EVENT.setTarget(null);
  
          //logger.info("RETRIEVING object " + obj);
          return obj;
      }