os586
2010-11-21 11:59
采纳率: 0%
浏览 402
已采纳

hibernate 修改数据时,修改前的值与修改中的值的比较

我现在要对某条记录进行修改,在Serivce中,从action中传递过来了记录的实体,
如代码:
public void saveResource(Resc resource) {
//要进行分开,A->是新增资源,B->修改资源 两种情况在刷新缓存情况不同
boolean isNew = (resource.getResourceId() == null);
String path = "";

    resourceDao.getSession().clear();
    resourceDao.save(resource);
    if(!isNew){
        Resc resc = resourceDao.get(resource.getResourceId());
        path = resc.getPath();
        resourceDao.getSession().evict(resc);           

    }

     }

此处我想把数据表中要修改的记录中path这个字段值与正要修改的页面上传递过来的resource.getPath()进行比较

但是我得到的两个值都是相同的.其中数据表中的值与页面上的值不同,但是通过我的取值却是相同的,我该怎么处理?
如果resourceDao.getSession.evict(resource)取到的值到是不同了,但是我后面要用到resource中的roles集合,如果evict了会报异常

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

5条回答 默认 最新

  • ethenjean 2010-11-22 12:01
    最佳回答

    其实解决问题的根本在于对get、evict、clear方法的理解,如果掌握了这几个方法与缓存之间的关系,再结合业务逻辑,很容易就能找到解决办法。

    评论
    解决 无用
    打赏 举报
查看更多回答(4条)

相关推荐 更多相似问题