Hibernate 修改数据先get出实体,然后修改属性值,但是没有save,修改后的数据也保存到数据库了。why?
User old = userDAO.get(vo.getUserid()); old.setUsername(vo.getUsername()); old.setIpaddrbegin(vo.getIpaddrbegin()); old.setIpaddrend(vo.getIpaddrend()); old.setMacaddr(vo.getMacaddr()); old.setCellphone(vo.getCellphone()); old.setTelephone(vo.getTelephone()); old.setRemark(vo.getRemark()); old.setModifier(this.getCurrentUserId()); old.setModidate(new Date()); //userDAO.save(old); 把这句注释掉也能保存到数据库,不知道怎么解决。我要的效果是save之后才保存到数据库。
2011-10-11 14:06
最佳答案
首先,你这个old对象是在session中取得的,所以这个对象已经和数据库同步了,或者说相关联了 如果你的session中的old对象发生变法,提交事务后,数据库中的数据也会更新 你注视了save方法,不要以为session就不会在和数据库打交道了,在你整个方法执行完毕,session就会关闭,在关闭之前,session会自动提交事务,清理缓存,这个操作注定是要和数据库打交道,也就是更新数据库数据