diff --git a/lib/Doctrine/ORM/Persisters/StandardEntityPersister.php b/lib/Doctrine/ORM/Persisters/StandardEntityPersister.php index 7d6c7381c..3bec7987e 100644 --- a/lib/Doctrine/ORM/Persisters/StandardEntityPersister.php +++ b/lib/Doctrine/ORM/Persisters/StandardEntityPersister.php @@ -157,7 +157,7 @@ class StandardEntityPersister } } } - + $stmt->execute(); if ($isPostInsertId) { diff --git a/lib/Doctrine/ORM/UnitOfWork.php b/lib/Doctrine/ORM/UnitOfWork.php index d8ba54ee6..9f4258977 100644 --- a/lib/Doctrine/ORM/UnitOfWork.php +++ b/lib/Doctrine/ORM/UnitOfWork.php @@ -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); + } } }