@@ 485-517 (lines=33) @@ | ||
482 | $columnList[] = $tableAlias . '.' . $discrColumn; |
|
483 | ||
484 | // sub tables |
|
485 | foreach ($this->class->subClasses as $subClassName) { |
|
486 | $subClass = $this->em->getClassMetadata($subClassName); |
|
487 | $tableAlias = $this->getSQLTableAlias($subClassName); |
|
488 | ||
489 | // Add subclass columns |
|
490 | foreach ($subClass->fieldMappings as $fieldName => $mapping) { |
|
491 | if (isset($mapping['inherited'])) { |
|
492 | continue; |
|
493 | } |
|
494 | ||
495 | $columnList[] = $this->getSelectColumnSQL($fieldName, $subClass); |
|
496 | } |
|
497 | ||
498 | // Add join columns (foreign keys) |
|
499 | foreach ($subClass->associationMappings as $mapping) { |
|
500 | if ( ! $mapping['isOwningSide'] |
|
501 | || ! ($mapping['type'] & ClassMetadata::TO_ONE) |
|
502 | || isset($mapping['inherited'])) { |
|
503 | continue; |
|
504 | } |
|
505 | ||
506 | $targetClass = $this->em->getClassMetadata($mapping['targetEntity']); |
|
507 | ||
508 | foreach ($mapping['joinColumns'] as $joinColumn) { |
|
509 | $columnList[] = $this->getSelectJoinColumnSQL( |
|
510 | $tableAlias, |
|
511 | $joinColumn['name'], |
|
512 | $this->quoteStrategy->getJoinColumnName($joinColumn, $subClass, $this->platform), |
|
513 | PersisterHelper::getTypeOfColumn($joinColumn['referencedColumnName'], $targetClass, $this->em) |
|
514 | ); |
|
515 | } |
|
516 | } |
|
517 | } |
|
518 | ||
519 | $this->currentPersisterContext->selectColumnListSql = implode(', ', $columnList); |
|
520 |
@@ 72-101 (lines=30) @@ | ||
69 | $this->currentPersisterContext->rsm->addMetaResult('r', $resultColumnName, $discrColumn, false, $discrColumnType); |
|
70 | ||
71 | // Append subclass columns |
|
72 | foreach ($this->class->subClasses as $subClassName) { |
|
73 | $subClass = $this->em->getClassMetadata($subClassName); |
|
74 | ||
75 | // Regular columns |
|
76 | foreach ($subClass->fieldMappings as $fieldName => $mapping) { |
|
77 | if (isset($mapping['inherited'])) { |
|
78 | continue; |
|
79 | } |
|
80 | ||
81 | $columnList[] = $this->getSelectColumnSQL($fieldName, $subClass); |
|
82 | } |
|
83 | ||
84 | // Foreign key columns |
|
85 | foreach ($subClass->associationMappings as $assoc) { |
|
86 | if ( ! $assoc['isOwningSide'] || ! ($assoc['type'] & ClassMetadata::TO_ONE) || isset($assoc['inherited'])) { |
|
87 | continue; |
|
88 | } |
|
89 | ||
90 | $targetClass = $this->em->getClassMetadata($assoc['targetEntity']); |
|
91 | ||
92 | foreach ($assoc['joinColumns'] as $joinColumn) { |
|
93 | $columnList[] = $this->getSelectJoinColumnSQL( |
|
94 | $tableAlias, |
|
95 | $joinColumn['name'], |
|
96 | $this->quoteStrategy->getJoinColumnName($joinColumn, $subClass, $this->platform), |
|
97 | PersisterHelper::getTypeOfColumn($joinColumn['referencedColumnName'], $targetClass, $this->em) |
|
98 | ); |
|
99 | } |
|
100 | } |
|
101 | } |
|
102 | ||
103 | $this->currentPersisterContext->selectColumnListSql = implode(', ', $columnList); |
|
104 |