session.save(user);
session.evit(user);//从一级缓存清除user
System.out.println("the j value is : "+j);
输出混乱是当然的,有多个线程在并发执行啊

解决方案 »

  1.   

    Session 是一个非线程安全的类。如果一个Session 实例允许共享的话,那些支持并发运行的东东,例如HTTP request,session beans,或者是 Swing workers,将会导致出现资源争用(race condition)。如果在HttpSession中有 Hibernate 的Session的话(稍后讨论),你应该考虑同步访问你的Http session。 否则,只要用户足够快的点击浏览器的“刷新”,就会导致两个并发运行线程使用同一个 Session。这是hibernate手册中的描述,怎样同步Http session?
    to:gojava(踏月无痕)
    我需要逐条处理一个表中的数据,数据库为mysql。你有什么好办法?
      

  2.   

    Session session = HibernateUtil.currentSession();
    -----------------------------------------------
    你这不是已经把Session绑定在thread上了?
    System.out输出混乱对你的数据处理有什么关系????难道要0,1,2,3....0,1,2,3...这样输出j的值,这又有什么意义????