sessionFactory.getCurrentSession();以这样的方式创建的session和当前线程相绑定;意思是不是这个session只能由当前线程使用,而其他线程不能使用?
比如说A线程getCurrentSession()的到session1,还没有没有关闭;B线程getCurrentSession()得到session2,此时session1和session2应该不是同一个session吧?

解决方案 »

  1.   


    不同线程中用getCurrentSession()方法获取的session当然不是同一个session了,因为这个方法只能获得当前线程的session,比如两个用户同时访问一个网站,结果用同一个session,那不乱套了。
      

  2.   

    getCurrentSession()是每次获得一个新的session
      

  3.   

    同一个线程获得的是同一个session啊!!
      

  4.   


    不是啊,不一定每次都会获得一个新的session。
    opensession()才会每次都获得一个session
      

  5.   

    肯定不是一个啊
    建议你看一些ThreadLocal这个类
    getCurrentSession()应该是获得同一个ThreadLocal中的session的
    ThreadLocal中的变量是单个线程中的单例,才能保证是同一个session
      

  6.   

    openSession:表示创建一个 Session ,使用后需要关闭这个 SessiongetCurrentSession:表示当前环境没有 Session 时,则创建一个,否则不用创建 两方法的区别:            ①、 openSession 永远是每次都打开一个新的 Session, 而 getCurrentSession 不是,是从 上下文 找、只有当前没有 Session 时,才创建一个新的 Session            ②、 OpenSession 需要手动 close,getCurrentSession 不需要手动 close ,事务提交自动 close            ③、 getCurrentSession 界定事务边界