0
Hibernate沒有更新SessionAttribute參數。Hibernate和@SessionAttribute
我使用名稱editGroup填充實體對象並將其放入SessionAttribute中。我在jsp頁面上更改它併發送給控制器。在控制器中,我只是調用服務方法並從會話中給他提供對象(editGroup)。但實體對象沒有更新。
控制器
@Controller
@SessionAttributes(value = "editGroup")
@RequestMapping(value = "/group")
public class GroupController {
...
@RequestMapping(value = "/{id}/edit", method = RequestMethod.GET)
public String groupEdit(@PathVariable Long id, Model model) {
if (!model.containsAttribute("editGroup")) {
model.addAttribute("editGroup", groupService.findGroup(id));
}
return "group/editGroup";
}
@RequestMapping(value = "/{id}/update", method = RequestMethod.POST)
public String groupUpdate(@ModelAttribute("editGroup") Group editGroup,
@PathVariable Long id, SessionStatus status) {
groupService.updateGroup(editGroup);
status.setComplete();
return "redirect:/group/" + id;
}
}
服務@Transactional
public void updateGroup(Group obj) {
groupDAO.update(group);
}
DAO
public void update(T obj) {
getSession().merge(obj);
}
Hibernate甚至不發送請求。請幫幫我。
確保你的服務是事務性的,沒有交易沒有獲取到數據庫中。 –
@M。 Deinum,服務是交易性的。我更新了這篇文章。 – Lancaster
有一個'@ Transactional'註釋不會使它成爲事務性的。如果你沒有' '它什麼都不做,或者你兩次掃描同一個組件,它也不會做任何事情。 –