protected void addPagination(Criteria c, PaginationVO paginationVO) {
        if (paginationVO != null) {
            Integer pageNo = paginationVO.getPageNo();
            Integer resultsPerPage = paginationVO.getResultsPerPage();
            
            if (pageNo != null && pageNo > 0 && resultsPerPage != null && resultsPerPage > 0) {
                c.setFirstResult(resultsPerPage * pageNo - 1);
                c.setMaxResults(resultsPerPage);
            }
            
            String sortOrder = paginationVO.getSortOrder();
            String sortType = paginationVO.getSortType();
            
            if (StringUtils.isNotBlank(sortOrder) && StringUtils.isNotBlank(sortType)) {
                if (sortOrder.equalsIgnoreCase("desc")) {
                    c.addOrder(Order.desc(sortType));
                } else {
                    c.addOrder(Order.asc(sortType));
                }
            }
        }
    }