protected function execute(DbalCollection $collection, IEntity $parent)
{
$builder = $collection->getQueryBuilder();
$preloadContainer = $parent->getPreloadContainer();
$values = $preloadContainer ? $preloadContainer->getPreloadValues($this->metadata->name) : [$parent->getRawValue($this->metadata->name)];
$cacheKey = $this->calculateCacheKey($builder, $values);
$data =& $this->cacheEntityContainers[$cacheKey];
if ($data) {
return $data;
}
$data = $this->fetch(clone $builder, stripos($cacheKey, 'JOIN') !== false, $values);
return $data;
}