/** * Adds ORDER BY ... ASC/DESC to query Mutates provided criteria query * * @param sortFieldOpt - field to sort by (field name in JPA Entity class) * @param asc - true if order should be ASC, false otherwise */ public static void order( CriteriaBuilder cb, CriteriaQuery<?> cq, Root<?> from, Optional<String> sortFieldOpt, boolean asc) { sortFieldOpt.ifPresent( sortField -> { Order order = asc ? cb.asc(from.get(sortField)) : cb.desc(from.get(sortField)); cq.orderBy(order); }); }