public function afterFetch($saved, $result)
    {
        // Multiple results
        if (is_array($result)) {
            $all = new ArrayCollection();
            foreach ($result as $entity) {
                if ($entity instanceof Entity) {
                    $all[] = self::afterFetch($saved, $entity);
                }
            }
            return $all;
        }

        // Normal single processing.
        if ($result instanceof Entity) {
            $result->_saved = $saved;

            // Process relation properties, delete the 'real' props
            $this->injectVirtualProperties($result);
        }
        return $result;
    }