Вы принимаете пользовательский объект в контроллере, но отправляете идентификатор из внешнего интерфейса, поэтому возникает эта ошибка, поэтому вы можете изменить метод, как показано ниже.
@GetMapping(value = "{id}")
public String edit(@PathVariable Long id, Model model) {
User user = userService.read(id); //read user from the DB by id
model.addAttribute("user", user);
return "userEdit";
}
ОБНОВЛЕНИЕ:
В противном случае выследуйте приведенному ниже подходу, чтобы обновить пользователя с помощью атрибута модели, который будет содержать полностью обновленный объект, вам просто нужно сохранить его в БД напрямую.
@RequestMapping(method = RequestMethod.PUT, produces = "text/html")
public String update(User user, BindingResult bindingResult, Model uiModel,
HttpServletRequest httpServletRequest)
{
//update user
uiModel.addAttribute("user", user);
return "updatedSuccess.jsp";
}