/**
  * Set original query builder.
  *
  * @param QueryBuilder $originalQb
  */
 protected function setOriginalQueryBuilder(QueryBuilder $originalQb)
 {
     $this->originalQb = $originalQb;
     $this->qbTools->prepareFieldAliases($originalQb->getDQLPart('select'));
     $this->qbTools->prepareJoinTablePaths($originalQb->getDQLPart('join'));
     $this->rootAlias = current($this->originalQb->getRootAliases());
     $this->initIdFieldName();
 }
 /**
  * @param QueryBuilder      $queryBuilder
  * @param QueryBuilderTools $qbTools
  */
 public function __construct(QueryBuilder $queryBuilder, QueryBuilderTools $qbTools)
 {
     // make sure 'from' DQL part is initialized for both original and optimized query builders
     $queryBuilder->getRootEntities();
     $this->originalQueryBuilder = $queryBuilder;
     $this->qbTools = $qbTools;
     // initialize the query builder helper
     $this->qbTools->prepareFieldAliases($this->originalQueryBuilder->getDQLPart('select'));
     $this->qbTools->prepareJoinTablePaths($this->originalQueryBuilder->getDQLPart('join'));
 }