Spring MVC控制器中的事务回滚

时间:2011-08-09 01:39:24

标签: java spring spring-mvc transactions rollback

我有一个用@Transaction注释的Spring MVC控制器,在某些输入下我需要回滚事务。

据我了解,触发回滚的正确方法是从控制器中抛出异常。

但是如果我从控制器抛出异常,我将无法从控制器返回ModelAndView对象。

如何在控制器中触发回滚,同时仍提供要呈现的ModelAndView

2 个答案:

答案 0 :(得分:2)

例外是适当的路线。 Spring也可以map exceptions to views。这可能是你想要做的。

答案 1 :(得分:2)

首先,我不认为在控制器方法上使用@Transaction是一件好事。最好将事务逻辑保留在“服务层”中并在那里使用@Transaction注释。

但如果您仍想在控制器上使用@Transaction,请查看org.springframework.web.servlet.handler.SimpleMappingExceptionResolver