public BeanListSourceBuilder orderBy(OrderSpecifier<?>... o) { for (OrderSpecifier<?> order : o) { metadata.addOrderBy(order); } return this; }
public final T orderBy(OrderSpecifier<?> spec) { Expression<?> e = convert(spec.getTarget(), true); if (!spec.getTarget().equals(e)) { metadata.addOrderBy(new OrderSpecifier(spec.getOrder(), e, spec.getNullHandling())); } else { metadata.addOrderBy(spec); } return self; }
@Test public void NullsLast() { QCat cat = QCat.cat; JPQLSerializer serializer = new JPQLSerializer(HQLTemplates.DEFAULT); QueryMetadata md = new DefaultQueryMetadata(); md.addJoin(JoinType.DEFAULT, cat); md.addOrderBy(cat.name.asc().nullsLast()); serializer.serialize(md, false, null); assertEquals("select cat\n" + "from Cat cat\n" + "order by cat.name asc nulls last", serializer.toString()); }
@Test public void NullsFirst() { QCat cat = QCat.cat; JPQLSerializer serializer = new JPQLSerializer(HQLTemplates.DEFAULT); QueryMetadata md = new DefaultQueryMetadata(); md.addJoin(JoinType.DEFAULT, cat); md.addOrderBy(cat.name.asc().nullsFirst()); serializer.serialize(md, false, null); assertEquals("select cat\n" + "from Cat cat\n" + "order by cat.name asc nulls first", serializer.toString()); }
OrderSpecifier<?> os2 = new OrderSpecifier(os.getOrder(), os.getTarget().accept(this, null), os.getNullHandling()); md.addOrderBy(os2);