protected void renderOrderByClause(RenderingContext renderingContext, StringBuilder jpaqlBuffer) { if ( getOrderList().isEmpty() ) { return; } renderingContext.getClauseStack().push( Clause.ORDER ); try { jpaqlBuffer.append( " order by " ); String sep = ""; for ( Order orderSpec : getOrderList() ) { jpaqlBuffer.append( sep ) .append( ( (Renderable) orderSpec.getExpression() ).render( renderingContext ) ) .append( orderSpec.isAscending() ? " asc" : " desc" ); sep = ", "; } } finally { renderingContext.getClauseStack().pop(); } } }
@Override public void visitOrder(Order order) { this.visit(order.getExpression()); this.jpqlBuilder.append(order.isAscending() ? " asc" : " desc"); }
jpaqlQuery.append( sep ) .append( ( ( Renderable ) orderSpec.getExpression() ).render( renderingContext ) ) .append( orderSpec.isAscending() ? " asc" : " desc" ); sep = ", ";
private void renderOrderBy(OrderByBuilder<?> ob, RenderContextImpl context) { if (orderList == null) { return; } context.setClauseType(ClauseType.ORDER_BY); for (Order order : orderList) { context.getBuffer().setLength(0); ((AbstractSelection<?>) order.getExpression()).render(context); String expression = context.takeBuffer(); Map<String, InternalQuery<?>> aliasToSubqueries = context.takeAliasToSubqueryMap(); if (aliasToSubqueries.isEmpty()) { boolean nullsFirst = false; if (order instanceof BlazeOrder) { nullsFirst = ((BlazeOrder) order).isNullsFirst(); } ob.orderBy(expression, order.isAscending(), nullsFirst); } else { throw new IllegalArgumentException("Subqueries are not supported in the order by clause!"); // MultipleSubqueryInitiator<?> initiator = ob.groupBySubqueries(expression); // // for (Map.Entry<String, InternalQuery<?>> subqueryEntry : aliasToSubqueries.entrySet()) { // context.pushSubqueryInitiator(initiator.with(subqueryEntry.getKey())); // subqueryEntry.getValue().renderSubquery(context); // context.popSubqueryInitiator(); // } // // initiator.end(); } } }
private void renderOrderBy(OrderByBuilder<?> ob, RenderContextImpl context) { if (orderList == null) { return; } context.setClauseType(ClauseType.ORDER_BY); for (Order order : orderList) { context.getBuffer().setLength(0); ((AbstractSelection<?>) order.getExpression()).render(context); String expression = context.takeBuffer(); Map<String, InternalQuery<?>> aliasToSubqueries = context.takeAliasToSubqueryMap(); if (aliasToSubqueries.isEmpty()) { boolean nullsFirst = false; if (order instanceof BlazeOrder) { nullsFirst = ((BlazeOrder) order).isNullsFirst(); } ob.orderBy(expression, order.isAscending(), nullsFirst); } else { throw new IllegalArgumentException("Subqueries are not supported in the order by clause!"); // MultipleSubqueryInitiator<?> initiator = ob.groupBySubqueries(expression); // // for (Map.Entry<String, InternalQuery<?>> subqueryEntry : aliasToSubqueries.entrySet()) { // context.pushSubqueryInitiator(initiator.with(subqueryEntry.getKey())); // subqueryEntry.getValue().renderSubquery(context); // context.popSubqueryInitiator(); // } // // initiator.end(); } } }
@Override public void visitOrder(Order order) { this .append("Order") .beginMap(); this.append("expression: ").append(order.getExpression()).appendLine(","); this.append("ascending: ").append(order.isAscending()).appendLine(); this.endMap(); }
Expr e = x.accept(orderCompiler); int dir = order.isAscending() ? Query.ORDER_ASCENDING : Query.ORDER_DESCENDING; sortConditions.add(new SortCondition(e, dir));
Expr e = x.accept(orderCompiler); int dir = order.isAscending() ? Query.ORDER_ASCENDING : Query.ORDER_DESCENDING; sortConditions.add(new SortCondition(e, dir));