@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public String updateUserById(@PathVariable("id") Long id, Model model) {
User user = userRepository.findOne(id);
model.addAttribute(user);
return "admin/editUser";
}
@RequestMapping(value = "/user/{id}", method = RequestMethod.POST)
@ResponseBody
public String updateUserById(@PathVariable("id") Long id, @ModelAttribute User user) {
userRepository.updateUser(id, user); // with a try catch
}
清道
@Override
public void updateUser(Long id, User user) {
User userDB = userRepository.findOne(id);
userDB.setFirstName(user.getFirstName());
userDB.setLastName(user.getLastName());
userDB.setEmail(user.getEmail());
userDB.setUsername(user.getUsername());
userRepository.save(userDB);
}
這種方法的作品,但它是相當醜陋的我。假設用戶剛剛更改了視圖中的名字字段,我如何才能調整我的代碼以僅調用函數來設置名字?
有點像觀察者模式來通知字段有變化?
使用休眠? – Musaddique
是的,我使用休眠,spring-boot-starter-data-jpa更準確 – melkir
看到我的下面的答案use dynamicUpdate = true。它只會更新僅更改的值。 – Musaddique