QueryExpression createExpression(T query, ResourceDefinition resourceDefinition) {
   QueryExpression expression = create(query, resourceDefinition);
   return expression.isProjectionExpression()
       ? new ProjectionQueryExpression(expression, resourceDefinition)
       : expression;
 }