public function __load()
 {
     if (!$this->__isInitialized__ && $this->__documentPersister__) {
         $this->__isInitialized__ = true;
         if ($this->__documentPersister__->load($this->__identifier__, $this) === null) {
             throw \Doctrine\ODM\MongoDB\MongoDBException::documentNotFound(get_class($this), $this->__identifier__);
         }
         unset($this->__documentPersister__, $this->__identifier__);
     }
 }
 public function __clone()
 {
     if (!$this->__isInitialized__ && $this->__documentPersister__) {
         $this->__isInitialized__ = true;
         $class = $this->__documentPersister__->getClassMetadata();
         $original = $this->__documentPersister__->load($this->__identifier__);
         if ($original === null) {
             throw \Doctrine\ODM\MongoDB\MongoDBException::documentNotFound(get_class($this), $this->__identifier__);
         }
         foreach ($class->reflFields as $field => $reflProperty) {
             $reflProperty->setValue($this, $reflProperty->getValue($original));
         }
         unset($this->__documentPersister__, $this->__identifier__);
     }
 }