zoukankan      html  css  js  c++  java
  • a different object with the same identifier value was already associated with the session错误

    这错误以前遇到过一次,我是这样解决的:
    正常情况一般调用hiberate端方法进行数据库操作时,是直接调用 getHibernateTemplate().update(user);,但在hibernate中同一个session里面有了两个相同标识但是是 不同实体时就会出现如标题的错误,在网上找来如下解决方法,错误是解决了,但不完美:
    public void update(User user) {

    Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
    session.clear();
    session.update(user);

    }
    这 样在session.update(user)后如果还有其他对数据库的save或update并且是在同一个事务中,后面的操作可能就会无效,具体原因 没查出来,可能是getcurrentSession()获取的是“当前”session,调用getcurrentSession()时“当前 ”session被从hibernate中剥离,所以导致了后面的操作无效。
    如果是struts+hibernate+spring框架下面有个很简单的方法:直接调用getHibernateTemplate().merge(user)。一切搞定!

    From:http://www.havenliu.com/java/12.html

  • 相关阅读:
    react 有多个按钮时点击单个按钮独立控制Loading
    React路由通信
    体育竞技模拟比赛
    json与csv格式相互转换
    替换表格内容及csv转html及CGI
    excel转换成csv格式
    文件读写笔记
    自定义手绘风
    numpy&matplotlib读书笔记
    Python成绩雷达图
  • 原文地址:https://www.cnblogs.com/JavaTechLover/p/3053582.html
Copyright © 2011-2022 走看看