public Object query(String queryName, String mapper, String orderBy, Integer page, Integer pageSize) {
QueryResultMapper<?> resultMapper = QueryMapperRegistry.get().mapperFor(mapper, null);
QueryContext queryContext = buildQueryContext(page, pageSize);
if (orderBy != null && !orderBy.isEmpty()) {
String[] orderBySortOrderItems = orderBy.split(",");
if (orderBySortOrderItems.length > 1) {
logger.debug("-- query() > orderBy clause = {} ", orderBy);
queryContext = new AdvancedQueryContext(queryContext, orderBy);
} else {
logger.debug("-- query() > sortBy = {}", orderBy);
queryContext.setOrderBy(orderBy);
queryContext.setAscending(true);
}
}
logger.debug("About to perform query '{}' with sorting criteria '{}' and page {} and page size {}", queryName, orderBy, page, pageSize);
Object result = queryService.query(queryName, resultMapper, queryContext);
logger.debug("Result returned from the query {} mapped with {}", result, resultMapper);
return transform(result, resultMapper);
}