1
0
mirror of synced 2025-03-22 16:03:49 +03:00

- 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

@ -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);