diff -ur extbase/Classes/Persistence/Generic/PersistenceManager.php ../../../patch/extbase/Classes/Persistence/Generic/PersistenceManager.php --- extbase/Classes/Persistence/Generic/PersistenceManager.php 2019-09-26 14:27:35.426427356 +0200 +++ ../../../patch/extbase/Classes/Persistence/Generic/PersistenceManager.php 2019-09-26 14:37:58.625229542 +0200 @@ -187,12 +187,13 @@ * Return a query object for the given type. * * @param string $type + * @param null|QuerySettingsInterface $defaultQuerySettings * @return QueryInterface * @internal only to be used within Extbase, not part of TYPO3 Core API. */ - public function createQueryForType($type) + public function createQueryForType($type, $defaultQuerySettings = null) { - return $this->queryFactory->create($type); + return $this->queryFactory->create($type, $defaultQuerySettings); } /** diff -ur extbase/Classes/Persistence/Generic/QueryFactoryInterface.php ../../../patch/extbase/Classes/Persistence/Generic/QueryFactoryInterface.php --- extbase/Classes/Persistence/Generic/QueryFactoryInterface.php 2019-09-26 14:27:35.434427190 +0200 +++ ../../../patch/extbase/Classes/Persistence/Generic/QueryFactoryInterface.php 2019-09-26 14:37:35.189730521 +0200 @@ -23,7 +23,8 @@ * Creates a query object working on the given class name * * @param string $className The class name + * @param null|QuerySettingsInterface $defaultQuerySettings * @return \TYPO3\CMS\Extbase\Persistence\QueryInterface */ - public function create($className); + public function create($className, $defaultQuerySettings = null); } diff -ur extbase/Classes/Persistence/Generic/QueryFactory.php ../../../patch/extbase/Classes/Persistence/Generic/QueryFactory.php --- extbase/Classes/Persistence/Generic/QueryFactory.php 2019-09-26 14:26:47.823419249 +0200 +++ ../../../patch/extbase/Classes/Persistence/Generic/QueryFactory.php 2019-09-26 14:37:35.177730777 +0200 @@ -63,13 +63,13 @@ * Creates a query object working on the given class name * * @param string $className The class name + * @param null|QuerySettingsInterface $defaultQuerySettings * @return \TYPO3\CMS\Extbase\Persistence\QueryInterface - * @throws \TYPO3\CMS\Extbase\Persistence\Generic\Exception */ - public function create($className) + public function create($className, $defaultQuerySettings = null) { $query = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\QueryInterface::class, $className); - $querySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface::class); + $querySettings = $defaultQuerySettings ?? $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface::class); $dataMap = $this->dataMapFactory->buildDataMap($className); if ($dataMap->getIsStatic() || $dataMap->getRootLevel()) { diff -ur extbase/Classes/Persistence/PersistenceManagerInterface.php ../../../patch/extbase/Classes/Persistence/PersistenceManagerInterface.php --- extbase/Classes/Persistence/PersistenceManagerInterface.php 2019-09-26 14:28:26.677355884 +0200 +++ ../../../patch/extbase/Classes/Persistence/PersistenceManagerInterface.php 2019-09-26 14:37:35.185730606 +0200 @@ -14,6 +14,8 @@ * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface; + /** * The Extbase Persistence Manager interface */ @@ -149,7 +151,8 @@ * Return a query object for the given type. * * @param string $type + * @param QuerySettingsInterface $defaultQuerySettings * @return QueryInterface */ - public function createQueryForType($type); + public function createQueryForType($type, $defaultQuerySettings); } diff -ur extbase/Classes/Persistence/Repository.php ../../../patch/extbase/Classes/Persistence/Repository.php --- extbase/Classes/Persistence/Repository.php 2019-09-26 14:28:47.052928949 +0200 +++ ../../../patch/extbase/Classes/Persistence/Repository.php 2019-09-26 14:19:46.776000000 +0200 @@ -193,7 +193,7 @@ */ public function createQuery() { - $query = $this->persistenceManager->createQueryForType($this->objectType); + $query = $this->persistenceManager->createQueryForType($this->objectType, $this->defaultQuerySettings); if ($this->defaultOrderings !== []) { $query->setOrderings($this->defaultOrderings); }