Split of functionality in separate functions
This commit is contained in:
parent
996c5048ab
commit
110d771883
@ -2407,24 +2407,8 @@ class UnitOfWork implements PropertyChangedListener
|
||||
$this->commitOrderCalculator->clear();
|
||||
}
|
||||
} else {
|
||||
$visited = array();
|
||||
|
||||
foreach ($this->identityMap as $className => $entities) {
|
||||
if ($className !== $entityName) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($entities as $entity) {
|
||||
$this->doDetach($entity, $visited, false);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->entityInsertions as $hash => $entity) {
|
||||
if (get_class($entity) != $entityName) {
|
||||
continue;
|
||||
}
|
||||
unset($this->entityInsertions[$hash]);
|
||||
}
|
||||
$this->clearIdentityMap($entityName);
|
||||
$this->clearIdentityInsertions($entityName);
|
||||
}
|
||||
|
||||
if ($this->evm->hasListeners(Events::onClear)) {
|
||||
@ -3478,4 +3462,34 @@ class UnitOfWork implements PropertyChangedListener
|
||||
{
|
||||
$this->hydrationCompleteHandler->hydrationComplete();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $entityName
|
||||
*/
|
||||
private function clearIdentityMap($entityName)
|
||||
{
|
||||
$visited = array();
|
||||
|
||||
foreach ($this->identityMap as $className => $entities) {
|
||||
if ($className !== $entityName) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($entities as $entity) {
|
||||
$this->doDetach($entity, $visited, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $entityName
|
||||
*/
|
||||
private function clearIdentityInsertions($entityName)
|
||||
{
|
||||
foreach ($this->entityInsertions as $hash => $entity) {
|
||||
if (get_class($entity) === $entityName) {
|
||||
unset($this->entityInsertions[$hash]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user