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.");
}
}