@RequestMapping(method = RequestMethod.POST) public ResponseEntity<? extends Serializable> insert(@RequestBody Visit visit) { ConstraintViolations cv = new ConstraintViolations(); visit.setVisitLocation(fieldBuilder.referenceField(visit.getVisitLocation(), cv)); visit.setCollectedBy(fieldBuilder.referenceField(visit.getCollectedBy(), cv)); if (cv.hasViolations()) { return new ResponseEntity<WebServiceCallException>( new WebServiceCallException(cv), HttpStatus.BAD_REQUEST); } try { visitService.createVisit(visit); } catch (ConstraintViolations e) { return new ResponseEntity<WebServiceCallException>( new WebServiceCallException(cv), HttpStatus.BAD_REQUEST); } return new ResponseEntity<Visit>(ShallowCopier.makeShallowCopy(visit), HttpStatus.CREATED); }