@Transactional(readOnly = true)
 @RequestMapping(value = "/contacts", method = RequestMethod.POST)
 @ResponseBody
 public JGridRowsResponse<Contact> getContacts(HttpServletRequest request, @RequestParam Long ID) {
   PageRequest pageRequest = null;
   if (request.getParameter("page") != null) {
     int rows = 10;
     int page;
     try {
       page = Integer.parseInt(request.getParameter("page")) - 1;
       if (page < 0) page = 0;
       rows =
           request.getParameter("rows") == null
               ? 10
               : Integer.parseInt(request.getParameter("rows"));
       if (request.getParameter("sidx") != null && !request.getParameter("sidx").isEmpty()) {
         String direction = request.getParameter("sord");
         pageRequest =
             new PageRequest(
                 page,
                 rows,
                 "asc".equals(direction) ? Sort.Direction.ASC : Sort.Direction.DESC,
                 request.getParameter("sidx"));
       } else {
         pageRequest = new PageRequest(page, rows);
       }
     } catch (NumberFormatException ex) {
       // do nothing
     }
   } /**/
   if (pageRequest != null) {
     return new JGridRowsResponse<>(counterpartyRepository.getContacts(ID, pageRequest));
   } else {
     return new JGridRowsResponse<>(counterpartyRepository.getContacts(ID));
   }
 }