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 ; }
Internal used method to retrieve object based on Identity .