private function getCacheItemGenerator(SearchCriteriaInterface $searchCriteria)
    {
        try {
            foreach ($searchCriteria->getIdList() as $item) {
                $cacheKey = $this->keyGenerator->generate($item, $searchCriteria);

                yield $item => $this->cacheItemPool->getItem($cacheKey);
            }
        } catch (PsrCacheInvalidArgumentException $e) {
            throw new InvalidCacheKeyException($e->getMessage(), $e->getCode(), $e);
        }
    }