代码的问题在于,您希望在调用时启动事务
saveTaskResult()。这不会发生,因为Spring使用AOP来启动和停止事务。
如果您从bean工厂获得事务性Spring
bean的实例,或者通过依赖注入,则实际上得到的是bean周围的代理。该代理在调用实际方法之前启动事务,并在方法完成后提交或回滚事务。
在这种情况下,无需调用事务代理即可调用bean的本地方法。将
saveTaskResult()方法(带有注释
@Transactional)放入另一个Spring
bean。将另一个Spring bean注入DemoService,然后从DemoService调用另一个Spring bean,一切都会好起来的。



