protected function assignSortFields($queryBuilder)
{
// if no sort has been assigned add order by id ASC as default
if (count($this->sortFields) === 0) {
$queryBuilder->addOrderBy($this->entityName . '.id', 'ASC');
}
foreach ($this->sortFields as $index => $sortField) {
$statement = $sortField->getSelect() . ' AS ' . $sortField->getName();
if (!$this->hasSelectStatement($queryBuilder, $statement)) {
$queryBuilder->addSelect($sortField->getSelect() . ' AS HIDDEN ' . $sortField->getName());
}
$queryBuilder->addOrderBy($sortField->getName(), $this->sortOrders[$index]);
}
}