@Transactional(readOnly = false) @RequestMapping( value = "/edit", method = {RequestMethod.POST, RequestMethod.GET}) public void editor( @RequestParam String oper, Counterparty counterparty, BindingResult result, HttpServletResponse response) throws IOException { if (result.hasErrors()) { response.sendError(400, result.toString()); return; } switch (oper) { case "add": counterpartyRepository.save(counterparty); response.setStatus(200); break; case "edit": Counterparty cpt = counterpartyRepository.findOne(counterparty.getId()); if (counterparty != null) { if (cpt.getVersion() <= counterparty.getVersion()) { cpt.setFullName(counterparty.getFullName()); cpt.setShortName(counterparty.getShortName()); counterpartyRepository.save(cpt); response.setStatus(200); } else { response.sendError(400, "ANOTHER TRANSACTION MODIFICATION!"); } } else { response.sendError(404, "NO Counterpart WITH ID " + counterparty.getId() + " FOUND"); } break; case "del": counterpartyRepository.delete(counterparty.getId()); response.setStatus(200); break; default: response.sendError(406, "UNKNOWN OPERATION"); } }