private function isInheritanceSupported(ClassMetadataInfo $classMetadata) { if ($classMetadata->isInheritanceTypeSingleTable() && in_array($classMetadata->name, $classMetadata->discriminatorMap, true)) { return true; } return !($classMetadata->isInheritanceTypeSingleTable() || $classMetadata->isInheritanceTypeJoined()); }
/** * @param ClassMetadataInfo $cm * @param string $columnName * @return bool */ protected function isColumnRevised(ClassMetadataInfo $cm, $columnName) { try { $propertyName = $cm->getFieldForColumn($columnName); return $this->annotationReader->isPropertyRevised($cm->name, $propertyName); } catch (MappingException $e) { if ($cm->isInheritanceTypeSingleTable()) { foreach ($cm->subClasses as $subClass) { $subClassMeta = $this->getClassMetaData($subClass); try { $propertyName = $subClassMeta->getFieldForColumn($columnName); return $this->annotationReader->isPropertyRevised($subClassMeta->name, $propertyName); } catch (MappingException $e) { } } } } return false; }