我想为实体更新编写类似休息的方法。在这种情况下,我从 url 中检索实体 ID,从请求正文中检索数据。问题在于将 id 与 bean 绑定。因为 EntityManager 和 Spring-Data Crud Repo 都没有update(id, bean)
方法。所以我可以自己设置
@RequestMapping(value = "/{id}", method = RequestMethod.POST)
public String update(@PathVariable("id") Long id, @Valid User user, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
user.setId(id); //Very bad
return "usersEdit";
}
user.setId(id); //Bad
repository.save(user);
return "redirect:/users/" + id;
}
或解雇 DRY 并将 id 作为私有字段放入表单中。还有其他解决方案吗?