/**
* Transforms orm order by expression and adds it to QueryBuilder.
* @param string $expression
* @param string $direction
* @param QueryBuilder $builder
*/
public function processOrderByExpression($expression, $direction, QueryBuilder $builder)
{
list($chain, , $sourceEntity) = ConditionParserHelper::parseCondition($expression);
$sqlExpression = $this->normalizeAndAddJoins($chain, $sourceEntity, $builder, $distinctNeeded);
$builder->addOrderBy($sqlExpression . ($direction === ICollection::DESC ? ' DESC' : ''));
if ($distinctNeeded) {
throw new LogicException("Cannot order by '{$expression}' expression, includes has many relationship.");
}
}