diff --git a/src/UnicaenImport/ORM/Event/Listeners/EntitySourceInjector.php b/src/UnicaenImport/ORM/Event/Listeners/EntitySourceInjector.php
index bdd6ccaddc243869c3bb696ec9e46cf553f7b24f..01935322ea9d4a198285bb78407ccb48f26d1610 100644
--- a/src/UnicaenImport/ORM/Event/Listeners/EntitySourceInjector.php
+++ b/src/UnicaenImport/ORM/Event/Listeners/EntitySourceInjector.php
@@ -21,6 +21,22 @@ use UnicaenImport\Entity\Db\Source;
  */
 class EntitySourceInjector implements EventSubscriber
 {
+    /**
+     * @var string
+     */
+    protected $sourceEntityClass = Source::class;
+
+    /**
+     * @param string $sourceEntityClass
+     * @return self
+     */
+    public function setSourceEntityClass(string $sourceEntityClass): self
+    {
+        $this->sourceEntityClass = $sourceEntityClass;
+
+        return $this;
+    }
+
     /**
      * @var Source
      */
@@ -73,7 +89,7 @@ class EntitySourceInjector implements EventSubscriber
 
         // Injection de la source
         /** @var Source $source */
-        $source = $args->getEntityManager()->getRepository(Source::class)->findOneBy([
+        $source = $args->getEntityManager()->getRepository($this->sourceEntityClass)->findOneBy([
             'code' => $this->sourceCode
         ]);
         $entity->setSource($source);
diff --git a/src/UnicaenImport/ORM/Event/Listeners/EntitySourceInjectorFactory.php b/src/UnicaenImport/ORM/Event/Listeners/EntitySourceInjectorFactory.php
index 91f067d2599f5d5053ca8b40a4e3ae5e36fe8bf1..30369ecfe4117077812a89c80a1ca48a3dd06f97 100644
--- a/src/UnicaenImport/ORM/Event/Listeners/EntitySourceInjectorFactory.php
+++ b/src/UnicaenImport/ORM/Event/Listeners/EntitySourceInjectorFactory.php
@@ -2,31 +2,42 @@
 
 namespace UnicaenImport\ORM\Event\Listeners;
 
-use Zend\ServiceManager\FactoryInterface;
-use Zend\ServiceManager\ServiceLocatorInterface;
+use UnicaenImport\Entity\Db\Source;
+use Zend\ServiceManager\ServiceLocatorInterface as ContainerInterface;
 
-final class EntitySourceInjectorFactory implements FactoryInterface
+final class EntitySourceInjectorFactory
 {
     /**
      * Create service
      *
-     * @param ServiceLocatorInterface $serviceLocator
+     * @param ContainerInterface $container
      * @return EntitySourceInjector
      */
-    public function createService(ServiceLocatorInterface $serviceLocator)
+    public function __invoke(ContainerInterface $container)
     {
-        $sourceCode = $this->getDefaultSourceCode($serviceLocator);
+        $config = $container->get('Config');
+
+        $sourceEntityClass = $this->getSourceEntityClass($config) ?: Source::class;
+        $sourceCode = $this->getDefaultSourceCode($config);
 
         $service = new EntitySourceInjector();
+        $service->setSourceEntityClass($sourceEntityClass);
         $service->setSourceCode($sourceCode);
 
         return $service;
     }
 
-    private function getDefaultSourceCode(ServiceLocatorInterface $serviceLocator)
+    private function getSourceEntityClass(array $config)
     {
-        $config = $serviceLocator->get('Config');
+        if (! isset($config['unicaen-import']['entity_source_injector']['source_entity_class'])) {
+            return null;
+        }
 
+        return $config['unicaen-import']['entity_source_injector']['source_entity_class'];
+    }
+
+    private function getDefaultSourceCode(array $config)
+    {
         if (! isset($config['unicaen-import']['entity_source_injector']['source_code'])) {
             return null;
         }