问答详情
源自:2-6 session详解(下)

openSession和getCurrentSession

是不是 openSession() session不管释不释放 下一个session都只能再新建一个连接对象connection?   而getCurrentSession 只要一提交事物 连接就自动释放 下一个session就不用新建connection 也能使用原有的connection  而且用getCurrentSession同时建的两个session 使用的也是同一个connection? 求大神帮忙梳理一下 我有点乱了

提问者:NullMoneyException 2016-10-28 18:03

个回答

  • 庞止大坑
    2016-10-28 21:08:43
    已采纳

    从上课的内容来说,openSession()方法实际上是打开一个新的session,在原有session关闭的情况下会使用原有的connection对象,这时两次输出的hashcode是相同的。

    而getCurrentSession()方法是调用原有的session,在第一个session提交事务后会自动释放占有的资源,这时第二个session就会使用原来第一个session使用的connection,两次输出的hashcode相同。

    当getCurrentSession()方法同时创建两个session时,从实验来看,用的是同一个connection,输出的hashcode是先相同的。