Spring @Transactional不起作用

31 浏览
0 Comments

Spring @Transactional不起作用

我之前在这个问题上已经发过一个帖子,问题得到了解决。然而,自从使用自动注入的bean和较少的XML配置重新构建项目后,我发现我又遇到了这个问题。我按照之前项目的实现方式进行了操作,但是不起作用。有人可以帮我解释为什么不起作用或者我应该做什么改变使其起作用吗?\n我有意在插入用户详细信息的方法中使用了一个不存在的表名来故意抛出异常。然而,插入用户和插入用户角色的语句没有回滚。请帮忙解决。

0
0 Comments

问题出现的原因是将标签移动到应用程序上下文XML中修复了事务行为。是一个后处理器,它使用AOP方法拦截器包装带有@Transactional注解的bean方法,处理事务行为。Spring的后处理器只在它们所定义的特定应用程序上下文中操作。

在这种情况下,您将后处理器定义在应用程序上下文中,而带有@Transactional注解的bean位于servlet应用程序上下文中。因此,后处理器仅对应用程序上下文的bean进行操作,而不是servlet上下文的bean。当标签移到应用程序上下文时,后处理器适当地包装了它们的事务方法。

希望这样有些意义。

问题的解决方法是将标签移动到应用程序上下文中。原因是后处理器只对定义在同一上下文中的bean进行操作。

0