public function executeRemoves()
 {
     foreach ($this->unitOfWork->getObjectsToRemove() as $object) {
         $this->unitOfWork->getObjectPersister($object)->removeObject($object);
         $this->objectIdentityMap->detach($object);
         $this->eventDispatcher->dispatchLifecycleEvent(Events::postRemove, $object);
     }
 }
 /**
  * @param string $className
  * @param array  $data
  *
  * @return object
  */
 private function createObject($className, array $data)
 {
     $repository = $this->objectManager->getRepository($className);
     $object = $repository->create($className);
     if ($object instanceof NotifyPropertyChanged) {
         $object->addPropertyChangedListener($this);
     }
     $this->eventDispatcher->dispatchPreLoad($object, $data);
     $repository->hydrate($object, $data);
     $this->eventDispatcher->dispatchPostLoad($object);
     $this->objectIdentityMap->addToIdentityMap($object, $data);
     return $object;
 }