/** * @param \Doctrine\OXM\Mapping\ClassMetadata $class * @param $xmlEntity * @return void */ private function persistNew($class, $xmlEntity) { $oid = spl_object_hash($xmlEntity); if (isset($class->lifecycleCallbacks[Events::prePersist])) { $class->invokeLifecycleCallbacks(Events::prePersist, $xmlEntity); } if ($this->evm->hasListeners(Events::prePersist)) { $this->evm->dispatchEvent(Events::prePersist, new Event\LifecycleEventArgs($xmlEntity, $this->xem)); } $idGen = $class->idGenerator; if (!$idGen->isPostInsertGenerator()) { $idValue = $idGen->generate($this->xem, $xmlEntity); if (!$idGen instanceof \Doctrine\OXM\Id\AssignedGenerator) { $this->entityIdentifiers[$oid] = array($class->identifier => $idValue); $class->setIdentifierValue($xmlEntity, $this->entityIdentifiers[$oid]); } else { $this->entityIdentifiers[$oid] = $idValue; } } $this->entityStates[$oid] = self::STATE_MANAGED; $this->scheduleForInsert($xmlEntity); }