protected List<OrderByClause> getOrderByClauses(final String orderBy) { if (StringUtils.isBlank(orderBy)) { return Collections.<OrderByClause>emptyList(); } List<OrderByClause> result = new ArrayList<>(); for (String clause : orderBy.split(",")) { String[] elems = clause.split(" "); if (elems.length > 0 && StringUtils.isNotBlank(elems[0])) { OrderByClause obc = new OrderByClause(); obc.setField(elems[0].trim()); if (elems.length > 1 && StringUtils.isNotBlank(elems[1])) { obc.setDirection( elems[1].trim().equalsIgnoreCase(OrderByClause.Direction.ASC.name()) ? OrderByClause.Direction.ASC : OrderByClause.Direction.DESC); } result.add(obc); } } return result; }