为什么你用了声明式事务管理,还要使用HibernateTemplet
理想的状况是使用Spring注入的sessionFactory
用getCurrentSession()方法来获取Session
事务管理器也是从同一个sessionFactory获取Session
这样才有事务管理的基础(事务管理器和你使用的是同一个Session)
如果你用HibernateTemplet新生成一个Session,那就什么都不会发生。
还有一个前提
假设你这个类是Service,那么这个Service必须是受Spring管理的。
你实际运行的时候,这个类也必须是从Spring获取的或是被注入的。
@Transactional 你加了是没有反应的 因为你没有用spring的事务 而是用的hibernat的事务 ,你必须开启hibernate的事务然后关闭,
你这完全是顺序执行啊,先跟新role1,sleep15,更新role2。逻辑的问题,这样的方法可行的。