From 8eea7c86f77ad4a60c120f9f0a2691c8a2ffc65b Mon Sep 17 00:00:00 2001 From: Asmir Mustafic Date: Tue, 3 Feb 2015 00:27:02 +0100 Subject: [PATCH] Resolve association entries on multi get cache --- lib/Doctrine/ORM/Cache/DefaultCollectionHydrator.php | 2 +- lib/Doctrine/ORM/UnitOfWork.php | 4 ---- lib/Doctrine/ORM/Utility/IdentifierFlattener.php | 4 +--- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/lib/Doctrine/ORM/Cache/DefaultCollectionHydrator.php b/lib/Doctrine/ORM/Cache/DefaultCollectionHydrator.php index 5ca1e59df..f6583cbd2 100644 --- a/lib/Doctrine/ORM/Cache/DefaultCollectionHydrator.php +++ b/lib/Doctrine/ORM/Cache/DefaultCollectionHydrator.php @@ -89,7 +89,7 @@ class DefaultCollectionHydrator implements CollectionHydrator /* @var $entityEntries \Doctrine\ORM\Cache\EntityCacheEntry[] */ foreach ($entityEntries as $index => $entityEntry) { - $list[$index] = $this->uow->createEntity($entityEntry->class, $entityEntry->data, self::$hints); + $list[$index] = $this->uow->createEntity($entityEntry->class, $entityEntry->resolveAssociationEntries($this->em), self::$hints); } array_walk($list, function($entity, $index) use ($collection) { diff --git a/lib/Doctrine/ORM/UnitOfWork.php b/lib/Doctrine/ORM/UnitOfWork.php index 0294b9f82..ff4752bdd 100644 --- a/lib/Doctrine/ORM/UnitOfWork.php +++ b/lib/Doctrine/ORM/UnitOfWork.php @@ -2625,10 +2625,6 @@ class UnitOfWork implements PropertyChangedListener if ($joinColumnValue !== null) { if ($targetClass->containsForeignIdentifier) { - if ($joinColumnValue instanceof AssociationCacheEntry) { - $joinColumnValue = implode(' ', $joinColumnValue->identifier); - } - $associatedId[$targetClass->getFieldForColumn($targetColumn)] = $joinColumnValue; } else { $associatedId[$targetClass->fieldNames[$targetColumn]] = $joinColumnValue; diff --git a/lib/Doctrine/ORM/Utility/IdentifierFlattener.php b/lib/Doctrine/ORM/Utility/IdentifierFlattener.php index 9108c35c8..7c9e488e5 100644 --- a/lib/Doctrine/ORM/Utility/IdentifierFlattener.php +++ b/lib/Doctrine/ORM/Utility/IdentifierFlattener.php @@ -72,9 +72,7 @@ final class IdentifierFlattener $flatId = array(); foreach ($class->identifier as $field) { - if (isset($class->associationMappings[$field]) && isset($id[$field]) && $id[$field] instanceof \Doctrine\ORM\Cache\AssociationCacheEntry) { - $flatId[$field] = implode(' ', $id[$field]->identifier); - } elseif (isset($class->associationMappings[$field]) && isset($id[$field]) && is_object($id[$field])) { + if (isset($class->associationMappings[$field]) && isset($id[$field]) && is_object($id[$field])) { $targetClassMetadata = $this->metadataFactory->getMetadataFor( $class->associationMappings[$field]['targetEntity'] );