/**
  * Prepares and returns Doctrine's QueryBuilder
  *
  * @param ColumnCollection        $columns
  * @param DataSetRequestInterface $request
  *
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function getQueryBuilder(ColumnCollection $columns, DataSetRequestInterface $request)
 {
     $this->conditions = $request->getConditions();
     $queryBuilder = $this->repository->getDataSetQueryBuilder();
     $queryBuilder->select($columns->getSelectClause());
     $queryBuilder->addOrderBy($this->getOrderByExpression($request, $columns));
     $queryBuilder->setFirstResult($request->getOffset());
     $this->setColumnConditions($queryBuilder, $columns);
     if ($request->getLimit() > 0) {
         $queryBuilder->setMaxResults($request->getLimit());
     }
     return $queryBuilder;
 }
 private function getEventName(string $eventSuffix) : string
 {
     return sprintf('%s.%s', $this->repository->getAlias(), $eventSuffix);
 }