From d72ad9cc50208153160edfa9b3bd7a23fbec0cee Mon Sep 17 00:00:00 2001 From: Asmir Mustafic Date: Fri, 20 Feb 2015 10:00:36 +0100 Subject: [PATCH] Handling composite keys on non cache-able entities --- lib/Doctrine/ORM/Cache/DefaultEntityHydrator.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/Doctrine/ORM/Cache/DefaultEntityHydrator.php b/lib/Doctrine/ORM/Cache/DefaultEntityHydrator.php index 6b850dec8..200af9c0d 100644 --- a/lib/Doctrine/ORM/Cache/DefaultEntityHydrator.php +++ b/lib/Doctrine/ORM/Cache/DefaultEntityHydrator.php @@ -92,7 +92,19 @@ class DefaultEntityHydrator implements EntityHydrator unset($data[$name]); foreach ($associationIds as $fieldName => $fieldValue) { - $data[$assoc['targetToSourceKeyColumns'][$targetClassMetadata->getColumnName($fieldName)]] = $fieldValue; + + if (isset($targetClassMetadata->associationMappings[$fieldName])){ + $targetAssoc = $targetClassMetadata->associationMappings[$fieldName]; + + foreach($assoc['targetToSourceKeyColumns'] as $referencedColumn => $localColumn) { + + if (isset($targetAssoc['sourceToTargetKeyColumns'][$referencedColumn])) { + $data[$localColumn] = $fieldValue; + } + } + }else{ + $data[$assoc['targetToSourceKeyColumns'][$targetClassMetadata->columnNames[$fieldName]]] = $fieldValue; + } } continue;