/** Exception to be thrown when validation on an argument annotated with @Valid fails. */
 @ExceptionHandler(MethodArgumentNotValidException.class)
 public ResponseEntity<Map<String, Object>> handleMethodArgumentNotValidException(
     MethodArgumentNotValidException errors) {
   Map<String, Object> errorMap = new HashMap<String, Object>();
   errorMap.put("hasErrors", "true");
   errorMap.put("developerMessage", "There are validation issues, please provide valid inputs");
   errorMap.put("userMessage", "Please provide valid inputs");
   errorMap.put("moreInfo", errors.getMessage());
   errorMap.put("errorCode", HttpStatus.BAD_REQUEST);
   errors.printStackTrace();
   for (FieldError error : errors.getBindingResult().getFieldErrors()) {
     errorMap.put(error.getField(), error.getDefaultMessage());
   }
   return new ResponseEntity<Map<String, Object>>(errorMap, HttpStatus.BAD_REQUEST);
 }