• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/query/query.php
  • Класс: Bitrix\Main\ORM\Query\Query
  • Вызов: Query::exec
public function exec()
{
	$this->is_executing = true;

	$query = $this->buildQuery();

	$cacheId = "";
	$ttl = 0;
	$result = null;

	if($this->cacheTtl > 0 && (empty($this->join_map) || $this->cacheJoins == true))
	{
		$ttl = $this->entity->getCacheTtl($this->cacheTtl);
	}

	if($ttl > 0)
	{
		$cacheId = md5($query);
		$result = $this->entity->readFromCache($ttl, $cacheId, $this->countTotal);
	}

	if($result === null)
	{
		$result = $this->query($query);

		if($ttl > 0)
		{
			$result = $this->entity->writeToCache($result, $cacheId, $this->countTotal);
		}
	}

	$this->is_executing = false;

	$queryResult = new Result($this, $result);

	if (!empty($this->forcedObjectPrimaryFields))
	{
		$queryResult->setHiddenObjectFields($this->forcedObjectPrimaryFields);
	}

	return $queryResult;
}