/**
  * @inheritdoc
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $types = $this->getTypes($input->getArgument('type'));
     $output->writeln(sprintf('Clearing cache for types: <info>%s</info>', implode(', ', $input->getArgument('type'))));
     foreach ($types as $type) {
         $builder = $type->getQueryBuilder('x');
         if ($input->getOption('where')) {
             $builder->andWhere($input->getOption('where'));
         }
         foreach ($builder->getQuery()->iterate() as list($item)) {
             $output->writeln(sprintf('Clearing cache for <comment>%s</comment>', $this->itemToString($item)));
             $this->exporter->clearCache($item, [$type]);
             $builder->getEntityManager()->detach($item);
         }
     }
 }