private function isInheritanceSupported(ClassMetadataInfo $classMetadata)
 {
     if ($classMetadata->isInheritanceTypeSingleTable() && in_array($classMetadata->name, $classMetadata->discriminatorMap, true)) {
         return true;
     }
     return !($classMetadata->isInheritanceTypeSingleTable() || $classMetadata->isInheritanceTypeJoined());
 }
예제 #2
0
 /**
  * @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;
 }