hibernate的get方法

Hibernate 修改数据先get出实体,然后修改属性值,但是没有save,修改后的数据也保存到数据库了。why?

2011-10-11 13:56
提问者:zxy_software | 悬赏分:30
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会自动提交事务,清理缓存,这个操作注定是要和数据库打交道,也就是更新数据库数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值