1
0
mirror of synced 2025-02-22 07:03:13 +03:00

[2.0] Better fix for #2478.

This commit is contained in:
romanb 2009-09-06 15:25:23 +00:00
parent e0012f0750
commit 846e0bfd3b

View File

@ -138,18 +138,30 @@ class ObjectHydrator extends AbstractHydrator
$class = $this->_ce[get_class($entity)]; $class = $this->_ce[get_class($entity)];
$relation = $class->associationMappings[$name]; $relation = $class->associationMappings[$name];
$pColl = new PersistentCollection( $value = $class->reflFields[$name]->getValue($entity);
$this->_em, if ($value === null) {
$this->_ce[$relation->targetEntityName], $value = new ArrayCollection;
new ArrayCollection }
);
$pColl->setOwner($entity, $relation); if ($value instanceof ArrayCollection) {
$class->reflFields[$name]->setValue($entity, $pColl); $value = new PersistentCollection(
$this->_uow->setOriginalEntityProperty($oid, $name, $pColl); $this->_em,
$this->_initializedCollections[$oid . $name] = $pColl; $this->_ce[$relation->targetEntityName],
$value
);
$value->setOwner($entity, $relation);
} else {
// Is already PersistentCollection.
$value->clear();
$value->setDirty(false);
$value->setInitialized(true);
}
return $pColl; $class->reflFields[$name]->setValue($entity, $value);
$this->_uow->setOriginalEntityProperty($oid, $name, $value);
$this->_initializedCollections[$oid . $name] = $value;
return $value;
} }
/** /**