private function loadPropertyInfoExtractor($entityManagerName, ContainerBuilder $container)
    {
        $propertyExtractorDefinition = $container->register(sprintf('doctrine.orm.%s_entity_manager.property_info_extractor', $entityManagerName), DoctrineExtractor::class);
        if (property_exists(DoctrineExtractor::class, 'entityManager')) {
            $argumentId = sprintf('doctrine.orm.%s_entity_manager', $entityManagerName);
        } else {
            $argumentId = sprintf('doctrine.orm.%s_entity_manager.metadata_factory', $entityManagerName);

            $metadataFactoryDefinition = $container->register($argumentId, ClassMetadataFactory::class);
            $metadataFactoryDefinition->setFactory([
                new Reference(sprintf('doctrine.orm.%s_entity_manager', $entityManagerName)),
                'getMetadataFactory',
            ]);
            $metadataFactoryDefinition->setPublic(false);
        }

        $propertyExtractorDefinition->addArgument(new Reference($argumentId));

        $propertyExtractorDefinition->addTag('property_info.list_extractor', ['priority' => -1001]);
        $propertyExtractorDefinition->addTag('property_info.type_extractor', ['priority' => -999]);
    }