1
0
mirror of synced 2025-02-20 22:23:14 +03:00

[2.0] Fixed _doMerge not to use hydrateAdd.

This commit is contained in:
romanb 2009-12-11 10:38:21 +00:00
parent 731c9718aa
commit 097d1d6bee
2 changed files with 8 additions and 4 deletions

View File

@ -157,7 +157,7 @@ class StandardEntityPersister
}
}
}
$stmt->execute();
if ($isPostInsertId) {

View File

@ -1376,11 +1376,11 @@ class UnitOfWork implements PropertyChangedListener
}
}
if ($class->isChangeTrackingNotify()) {
//TODO
//TODO: put changed fields in changeset...?
}
}
if ($class->isChangeTrackingDeferredExplicit()) {
//TODO
//TODO: Mark $managedCopy for dirty check...? ($this->_scheduledForDirtyCheck)
}
}
@ -1389,8 +1389,12 @@ class UnitOfWork implements PropertyChangedListener
$prevClass = $this->_em->getClassMetadata(get_class($prevManagedCopy));
if ($assoc->isOneToOne()) {
$prevClass->reflFields[$assocField]->setValue($prevManagedCopy, $managedCopy);
//TODO: What about back-reference if bidirectional?
} else {
$prevClass->reflFields[$assocField]->getValue($prevManagedCopy)->hydrateAdd($managedCopy);
$prevClass->reflFields[$assocField]->getValue($prevManagedCopy)->unwrap()->add($managedCopy);
if ($assoc->isOneToMany()) {
$class->reflFields[$assoc->mappedByFieldName]->setValue($managedCopy, $prevManagedCopy);
}
}
}