JTASessionContext currentSession()

通过SessionFactoryImplementor(factory)取得事务管理(transactionManager)和事务(txn)
创建一个事务标识符(txnIdentifier),如果设置里面事务查找为null,赋值txn,否则赋值设置里面事务查找中的事务标识符,通过txn取得
Session currentSession
通过标识符在map中取得当前session并赋值给currentSession
如果session为null,就创建一个,同TreadLocal
把txn注册成同步,在编译后移除标识符
将currentSession放入map,key为txnIdentifier
注:map被实例化了

不解:
private transient Map currentSessionMap = new Hashtable();
每次都是创建一个新的实例化currentSessionMap 为什么还要从中取session

ManagedSessionContext的currentSession()
直接从本地线程中取map,如果没有,就在本地线程中设置一个
map.get(factory)取得currentSession,然后返回
无,则记入日志
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值