public function executePersists()
 {
     foreach ($this->unitOfWork->getObjectsToPersist() as $object) {
         $persister = $this->unitOfWork->getObjectPersister($object);
         $repository = $this->unitOfWork->getObjectRepository($object);
         $objectData = $persister->persistObject($object);
         $identifier = $repository->getObjectIdentifierFromData($objectData);
         $persister->assignIdentifier($object, $identifier);
         $this->objectIdentityMap->addToIdentityMap($object, $objectData);
         $this->eventDispatcher->dispatchLifecycleEvent(Events::postPersist, $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;
 }