diff --git a/Classes/Domain/Repository/CompanyRepository.php b/Classes/Domain/Repository/CompanyRepository.php
index 86ea052540c0daa29a3b8ab7bbedaf8025293e3f..a44f842c1704a6760da9f84882d5fe5879cc1d4d 100644
--- a/Classes/Domain/Repository/CompanyRepository.php
+++ b/Classes/Domain/Repository/CompanyRepository.php
@@ -1,7 +1,5 @@
 <?php
 
-namespace SGalinski\SgJobs\Domain\Repository;
-
 /***************************************************************
  *  Copyright notice
  *
@@ -26,6 +24,8 @@ namespace SGalinski\SgJobs\Domain\Repository;
  *  This copyright notice MUST APPEAR in all copies of the script!
  ***************************************************************/
 
+namespace SGalinski\SgJobs\Domain\Repository;
+
 use SGalinski\SgJobs\Domain\Model\Company;
 use TYPO3\CMS\Core\Context\Context;
 use TYPO3\CMS\Core\Context\Exception\AspectNotFoundException;
@@ -38,15 +38,17 @@ use TYPO3\CMS\Extbase\Persistence\Repository;
  * Company Repository
  */
 class CompanyRepository extends Repository {
+	/** @var array */
+	protected $cache = [];
+
 	/**
 	 * initializes the object
 	 */
 	public function initializeObject(): void {
-		$querySettings = $this->createQuery()->getQuerySettings();
-		$querySettings->setRespectStoragePage(FALSE);
-		$querySettings->setIgnoreEnableFields(TRUE);
-		$querySettings->setEnableFieldsToBeIgnored(['disabled']);
-		$this->setDefaultQuerySettings($querySettings);
+//		$querySettings = $this->createQuery()->getQuerySettings();
+//		$querySettings->setRespectStoragePage(FALSE);
+//		$querySettings->setIgnoreEnableFields(TRUE);
+//		$this->setDefaultQuerySettings($querySettings);
 	}
 
 	/**
@@ -130,34 +132,36 @@ class CompanyRepository extends Repository {
 	 * @throws AspectNotFoundException
 	 */
 	public function getAllCompanies(int $pageUid, array $filters = []) {
-		$companyConstraints = [];
-		$query = $this->createQuery();
-		$querySettings = $query->getQuerySettings();
-		$querySettings->setStoragePageIds([$pageUid]);
-		$querySettings->setLanguageUid(
-			GeneralUtility::makeInstance(Context::class)->getPropertyFromAspect('language', 'id', 0)
-		);
-
-		$query->setQuerySettings($querySettings);
-
-		$query->setOrderings(
-			[
-				'sorting' => QueryInterface::ORDER_ASCENDING,
-			]
-		);
-
-		$companyConstraints[] = $query->equals('pid', $pageUid);
-
-		if (count($filters) > 0) {
-			$constraints = [];
-			foreach ($filters as $filter) {
-				$constraints[] = $query->equals('uid', $filter);
+		$hash = $pageUid . '_' . implode('-', $filters);
+		if (!isset($this->cache[$hash])) {
+			$companyConstraints = [];
+			$query = $this->createQuery();
+			$querySettings = $query->getQuerySettings();
+			$querySettings->setStoragePageIds([$pageUid]);
+			$querySettings->setLanguageUid(
+				GeneralUtility::makeInstance(Context::class)->getPropertyFromAspect('language', 'id', 0)
+			);
+			$query->setQuerySettings($querySettings);
+
+			$query->setOrderings(
+				[
+					'sorting' => QueryInterface::ORDER_ASCENDING,
+				]
+			);
+
+			$companyConstraints[] = $query->equals('pid', $pageUid);
+			if (count($filters) > 0) {
+				$constraints = [];
+				foreach ($filters as $filter) {
+					$constraints[] = $query->equals('uid', $filter);
+				}
+				$companyConstraints[] = $query->logicalOr($constraints);
 			}
-			$companyConstraints[] = $query->logicalOr($constraints);
-		}
 
-		$query->matching($query->logicalAnd($companyConstraints));
+			$query->matching($query->logicalAnd($companyConstraints));
+			$this->cache[$hash] = $query->execute();
+		}
 
-		return $query->execute();
+		return $this->cache[$hash];
 	}
 }