我正在迁移到Spring 3.1.4和Hibernate 4.2.8,我的所有dao和服务类都正确地注释了@Transactional
(我的应用程序正常使用spring 3.0.7和Hibernate 3.6)
但是当我迁移到这些版本时,我用Propagation.SUPPORTS
注释的Transactional方法会抛出HibernateException
警告,找不到当前线程的会话..
这在SpringSessionContext.currentSession()
方法中发生..我注意到如果TransactionSynchronizationManager
不包含一个会话,它就不会创建会话。
当我用Propagation.REQUIRED
注释方法时,一切都正确发生..
我已经测试了Spring 3.2.5并且bug仍然存在。