getCurrnetSession与OpenviewFilter看似矛盾的地方

问题在这个帖子中,是关于getCurrnetSession与OpenviewFilter看似矛盾的地方,具体看下面的帖子:

http://bbs.csdn.net/topics/390475237?page=1#post-394642915


可以更好的解释了:看源代码:

public final Session currentSession() throws HibernateException {  
      //从线程局部量context中尝试取出已经绑定到线程的Session  
      Session current = existingSession( factory );  
        
      //如果没有绑定到线程的Session  
      if (current == null) {  
         //打开一个”事务提交后自动关闭”的Session  
         current = buildOrObtainSession();  
            current.getTransaction().registerSynchronization(buildCleanupSynch() );  
         // wrap the session in thetransaction-protection proxy  
         if ( needsWrapping( current ) ) {  
            current = wrap( current );  
         }  
         //将得到的Session绑定到线程中:即以<SessionFactory,Session>键值对方式设置到线程局部量context  
         doBind( current, factory );  
      }  
      return current;  
   }

我觉得是这样,只有当前session为null时才会去创建“事务提交后自动关闭”的Session,而使用了OpenSessionInViewFilter的session在当前请求范围内不会为null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值