在hibernate中同一个session里面有了两个相同标识但是是 不同实体时就会出现如标题的错误.这个异常发生当你用session.load 或 session.get加载一个对象时 而又尝试着 
session.update or session.lock 操作此对象解决:
请不要用session加载对对象当你引用或再次使用该对象

解决方案 »

  1.   

    您好,谢谢。
    我这并没有用session加载对象啊我使用的都是
    public void updateCompetitions(Competitions competitions) {
    this.getHibernateTemplate().update(competitions);
    }另外一个更新就没问题,后来加了 this.getHibernateTemplate().getSessionFactory().getCurrentSession().clear();
    之后解决。但是 为什么 之前的查询 会查询两次呢?
      

  2.   

    是啊,
    感觉很莫名其妙的,有些查询执行1次,但是有些查询却执行两次,Debug的时候,直接是先执行了一次,然后再跳到Debug的位置。
      

  3.   

    反正我用hibernate的时候就没顺心过,什么一级缓存啊,二级缓存啊,但是每次进页面后,在刷新啥的,那些sql语句又都执行了,还有救像楼主这样连续来2次都不知道是咋搞的。
      

  4.   

    是不是的考虑一下令牌 防刷的问题 一个方法:saveToken(request);另一个方法: if(isTokenValid(request,true)){业务操作;}
      

  5.   

    findByUserIdBy" class="competitionsAction"
                method="findByUserId">
    方法名称换下
      

  6.   

    Struts2
    <action name="findByUserIdBy" class="competitionsAction"
                method="findByUserId">
                <result name="success">/web/competitions/competition.jsp
                </result>
                <result name="input">/web/competitions/deleteError.jsp</result>
            </action>
    里面的名字?改这个 findByUserIdBy这个嘛?
    为嘛要改名字呢,。~谢谢~
      

  7.   

    this.getHibernateTemplate().getSessionFactory().getCurrentSession().clear();
    执行两次的问题,你可以Debug看看。看到底啥情况~
      

  8.   

    简单的很,超链接问题,href="javascript:void(0);" onclick="test()"   在test方法里进行跳转就行了不要用href