今天用SSH框架写点东西就曝出这个错误
出现问题的代码块是这样的
/** 修改 */
public String edit() throws Exception {
// 从数据库中取出对象
Forum forum = forumService.getById(model.getId());
// 设置要修改的属性
forum.setName(model.getName());
forum.setDescription(model.getDescription());
// 更新到数据库
forumService.update(model);
return "toList";
}
就是说登录后在修改时session中存在两个标识相同的实体
把前面的代码注释掉
/** 修改 */
public String edit() throws Exception {
// 从数据库中取出对象
// Forum forum = forumService.getById(model.getId());
// // 设置要修改的属性
// forum.setName(model.getName());
// forum.setDescription(model.getDescription());
// 更新到数据库
forumService.update(model);
return "toList";
}
可以了!
基本类中涉及到更新操作:
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
public void update(T entity) {
getSession().update(entity);
}
这个应该是缓存的问题,会话没有及时更新