非web项目通过getCurrentSession()这个api获取session时一直提示Could not obtain transaction-synchronized Session for current thread这个异常,如果采用opensession来获取的话则没有问题,但opensession的话要自己管理session,要手动关闭,不方便,使用getCurrentSession又一直报错,但配置什么的明明是从别的项目拷贝过来的,但一直提示这个问题,后面通过一步步debug才发现在此处返回了 NULL ,猜想此API底层是使用ThreadLocal来管理session的,把session和线程绑定在一起
由于我的确采用了多线程,所以在开线程的地方加上@Transactional注解,再次尝试终于不报错了