Hibernate和@SessionAttribute

时间:2014-12-29 19:17:01

标签: spring hibernate

Hibernate不更新SessionAttribute参数。

我填充了一个实体对象,并将其放在SessionAttribute中,名称为 editGroup 。我在jsp页面上更改了它并发送到控制器。在控制器中,我只需调用service方法并从session( 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甚至不发送请求。请帮帮我。

1 个答案:

答案 0 :(得分:0)

我在问题上找到了答案。

我在弹簧配置中有<tx:annotation-driven/>。在此指定了transaction-manager参数后,程序正常运行。

<tx:annotation-driven transaction-manager="transactionManager"/>