#1086 - Passing type information when building meta-mappings for JTI and STI inheritances
This commit is contained in:
parent
40849f8ae1
commit
f1170c84a4
@ -80,13 +80,15 @@ abstract class AbstractEntityInheritancePersister extends BasicEntityPersister
|
||||
* @param string $tableAlias
|
||||
* @param string $joinColumnName
|
||||
* @param string $className
|
||||
* @param string $type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getSelectJoinColumnSQL($tableAlias, $joinColumnName, $className)
|
||||
protected function getSelectJoinColumnSQL($tableAlias, $joinColumnName, $className, $type)
|
||||
{
|
||||
$columnAlias = $this->getSQLColumnAlias($joinColumnName);
|
||||
$this->rsm->addMetaResult('r', $columnAlias, $joinColumnName);
|
||||
|
||||
$this->rsm->addMetaResult('r', $columnAlias, $joinColumnName, false, $type);
|
||||
|
||||
return $tableAlias . '.' . $joinColumnName . ' AS ' . $columnAlias;
|
||||
}
|
||||
|
@ -457,7 +457,14 @@ class JoinedSubclassPersister extends AbstractEntityInheritancePersister
|
||||
? $mapping['inherited']
|
||||
: $this->class->name;
|
||||
|
||||
$columnList[] = $this->getSelectJoinColumnSQL($tableAlias, $srcColumn, $className);
|
||||
$targetClass = $this->em->getClassMetadata($mapping['targetEntity']);
|
||||
|
||||
$columnList[] = $this->getSelectJoinColumnSQL(
|
||||
$tableAlias,
|
||||
$srcColumn,
|
||||
$className,
|
||||
$targetClass->getTypeOfColumn($mapping['sourceToTargetKeyColumns'][$srcColumn])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -495,7 +502,14 @@ class JoinedSubclassPersister extends AbstractEntityInheritancePersister
|
||||
? $mapping['inherited']
|
||||
: $subClass->name;
|
||||
|
||||
$columnList[] = $this->getSelectJoinColumnSQL($tableAlias, $srcColumn, $className);
|
||||
$targetClass = $this->em->getClassMetadata($mapping['targetEntity']);
|
||||
|
||||
$columnList[] = $this->getSelectJoinColumnSQL(
|
||||
$tableAlias,
|
||||
$srcColumn,
|
||||
$className,
|
||||
$targetClass->getTypeOfColumn($mapping['sourceToTargetKeyColumns'][$srcColumn])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -88,7 +88,15 @@ class SingleTablePersister extends AbstractEntityInheritancePersister
|
||||
|
||||
foreach ($assoc['targetToSourceKeyColumns'] as $srcColumn) {
|
||||
$className = isset($assoc['inherited']) ? $assoc['inherited'] : $this->class->name;
|
||||
$columnList[] = $this->getSelectJoinColumnSQL($tableAlias, $srcColumn, $className);
|
||||
|
||||
$targetClass = $this->em->getClassMetadata($mapping['targetEntity']);
|
||||
|
||||
$columnList[] = $this->getSelectJoinColumnSQL(
|
||||
$tableAlias,
|
||||
$srcColumn,
|
||||
$className,
|
||||
$targetClass->getTypeOfColumn($mapping['sourceToTargetKeyColumns'][$srcColumn])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user