1
0
mirror of synced 2025-03-21 23:43:53 +03:00

#1178 - handling traversal of association mapping data in lazy-loading many-to-many requests on the inverse side

This commit is contained in:
Marco Pivetta 2015-01-17 04:09:14 +01:00
parent 1e606d1ed3
commit c82794bff7

View File

@ -92,11 +92,21 @@ class PersisterHelper
$assoc = $class->associationMappings[$fieldName]; $assoc = $class->associationMappings[$fieldName];
if (count($assoc['sourceToTargetKeyColumns']) > 1) { if (! $assoc['isOwningSide']) {
return self::getTypeOfField($assoc['mappedBy'], $em->getClassMetadata($assoc['targetEntity']), $em);
}
if (($assoc['type'] & ClassMetadata::MANY_TO_MANY) > 0) {
$joinData = $assoc['joinTable'];
} else {
$joinData = $assoc;
}
if (count($joinData['joinColumns']) > 1) {
throw QueryException::associationPathCompositeKeyNotSupported(); throw QueryException::associationPathCompositeKeyNotSupported();
} }
$targetColumnName = $assoc['joinColumns'][0]['referencedColumnName']; $targetColumnName = $joinData['joinColumns'][0]['referencedColumnName'];
$targetClass = $em->getClassMetadata($assoc['targetEntity']); $targetClass = $em->getClassMetadata($assoc['targetEntity']);
return self::getTypeOfColumn($targetColumnName, $targetClass, $em); return self::getTypeOfColumn($targetColumnName, $targetClass, $em);