protected function evaluateOverridesAnnotations(array $classAnnotations, ORM\ClassMetadataInfo $metadata)
    {
        if (isset($classAnnotations[ORM\AssociationOverrides::class])) {
            $associationOverridesAnnotation = $classAnnotations[ORM\AssociationOverrides::class];

            foreach ($associationOverridesAnnotation->value as $associationOverride) {
                $override = [];
                $fieldName = $associationOverride->name;

                // Check for JoinColumn/JoinColumns annotations
                if ($associationOverride->joinColumns) {
                    $joinColumns = [];
                    foreach ($associationOverride->joinColumns as $joinColumn) {
                        $joinColumns[] = $this->joinColumnToArray($joinColumn);
                    }
                    $override['joinColumns'] = $joinColumns;
                }

                // Check for JoinTable annotations
                if ($associationOverride->joinTable) {
                    $joinTable = null;
                    $joinTableAnnotation = $associationOverride->joinTable;
                    $joinTable = [
                        'name' => $joinTableAnnotation->name,
                        'schema' => $joinTableAnnotation->schema
                    ];

                    foreach ($joinTableAnnotation->joinColumns as $joinColumn) {
                        $joinTable['joinColumns'][] = $this->joinColumnToArray($joinColumn);
                    }

                    foreach ($joinTableAnnotation->inverseJoinColumns as $joinColumn) {
                        $joinTable['inverseJoinColumns'][] = $this->joinColumnToArray($joinColumn);
                    }

                    $override['joinTable'] = $joinTable;
                }

                $metadata->setAssociationOverride($fieldName, $override);
            }
        }

        // Evaluate AttributeOverrides annotation
        if (isset($classAnnotations[ORM\AttributeOverrides::class])) {
            $attributeOverridesAnnotation = $classAnnotations[ORM\AttributeOverrides::class];
            foreach ($attributeOverridesAnnotation->value as $attributeOverrideAnnotation) {
                $attributeOverride = $this->addColumnToMappingArray($attributeOverrideAnnotation->column, [], $attributeOverrideAnnotation->name);
                $metadata->setAttributeOverride($attributeOverrideAnnotation->name, $attributeOverride);
            }
        }
    }
protected function evaluateOverridesAnnotations(array $classAnnotations, ORM\ClassMetadataInfo $metadata)
    {
        if (isset($classAnnotations[ORM\AssociationOverrides::class])) {
            $associationOverridesAnnotation = $classAnnotations[ORM\AssociationOverrides::class];

            foreach ($associationOverridesAnnotation->value as $associationOverride) {
                $override = [];
                $fieldName = $associationOverride->name;

                // Check for JoinColumn/JoinColumns annotations
                if ($associationOverride->joinColumns) {
                    $joinColumns = [];
                    foreach ($associationOverride->joinColumns as $joinColumn) {
                        $joinColumns[] = $this->joinColumnToArray($joinColumn);
                    }
                    $override['joinColumns'] = $joinColumns;
                }

                // Check for JoinTable annotations
                if ($associationOverride->joinTable) {
                    $joinTable = null;
                    $joinTableAnnotation = $associationOverride->joinTable;
                    $joinTable = [
                        'name' => $joinTableAnnotation->name,
                        'schema' => $joinTableAnnotation->schema
                    ];

                    foreach ($joinTableAnnotation->joinColumns as $joinColumn) {
                        $joinTable['joinColumns'][] = $this->joinColumnToArray($joinColumn);
                    }

                    foreach ($joinTableAnnotation->inverseJoinColumns as $joinColumn) {
                        $joinTable['inverseJoinColumns'][] = $this->joinColumnToArray($joinColumn);
                    }

                    $override['joinTable'] = $joinTable;
                }

                $metadata->setAssociationOverride($fieldName, $override);
            }
        }

        // Evaluate AttributeOverrides annotation
        if (isset($classAnnotations[ORM\AttributeOverrides::class])) {
            $attributeOverridesAnnotation = $classAnnotations[ORM\AttributeOverrides::class];
            foreach ($attributeOverridesAnnotation->value as $attributeOverrideAnnotation) {
                $attributeOverride = $this->addColumnToMappingArray($attributeOverrideAnnotation->column, [], $attributeOverrideAnnotation->name);
                $metadata->setAttributeOverride($attributeOverrideAnnotation->name, $attributeOverride);
            }
        }
    }
protected function evaluateOverridesAnnotations ( array $ classAnnotations , ORM \ ClassMetadataInfo $ metadata ) { if ( isset ( $ classAnnotations [ ORM \ AssociationOverrides :: class ] ) ) { $ associationOverridesAnnotation = $ classAnnotations [ ORM \ AssociationOverrides :: class ] ; foreach ( $ associationOverridesAnnotation -> value as $ associationOverride ) { $ override = [ ] ; $ fieldName = $ associationOverride -> name ; // Check for JoinColumn/JoinColumns annotations if ( $ associationOverride -> joinColumns ) { $ joinColumns = [ ] ; foreach ( $ associationOverride -> joinColumns as $ joinColumn ) { $ joinColumns [ ] = $ this -> joinColumnToArray ( $ joinColumn ) ; } $ override [ 'joinColumns' ] = $ joinColumns ; } // Check for JoinTable annotations if ( $ associationOverride -> joinTable ) { $ joinTable = null ; $ joinTableAnnotation = $ associationOverride -> joinTable ; $ joinTable = [ 'name' => $ joinTableAnnotation -> name , 'schema' => $ joinTableAnnotation -> schema ] ; foreach ( $ joinTableAnnotation -> joinColumns as $ joinColumn ) { $ joinTable [ 'joinColumns' ] [ ] = $ this -> joinColumnToArray ( $ joinColumn ) ; } foreach ( $ joinTableAnnotation -> inverseJoinColumns as $ joinColumn ) { $ joinTable [ 'inverseJoinColumns' ] [ ] = $ this -> joinColumnToArray ( $ joinColumn ) ; } $ override [ 'joinTable' ] = $ joinTable ; } $ metadata -> setAssociationOverride ( $ fieldName , $ override ) ; } } // Evaluate AttributeOverrides annotation if ( isset ( $ classAnnotations [ ORM \ AttributeOverrides :: class ] ) ) { $ attributeOverridesAnnotation = $ classAnnotations [ ORM \ AttributeOverrides :: class ] ; foreach ( $ attributeOverridesAnnotation -> value as $ attributeOverrideAnnotation ) { $ attributeOverride = $ this -> addColumnToMappingArray ( $ attributeOverrideAnnotation -> column , [ ] , $ attributeOverrideAnnotation -> name ) ; $ metadata -> setAttributeOverride ( $ attributeOverrideAnnotation -> name , $ attributeOverride ) ; } } }
Evaluate the association overrides annotations and amend the metadata accordingly.

@param array $classAnnotations
@param ORM\ClassMetadataInfo $metadata
@return void
Evaluate the association overrides annotations and amend the metadata accordingly .