Spring MVC 控制器中的事务回滚

发布于 2024-11-28 23:24:41 字数 230 浏览 0 评论 0原文

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

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

但是,如果我从控制器抛出异常,我将没有机会从控制器返回 ModelAndView 对象。

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

I have a Spring MVC controller annotated with @Transaction, and under certain inputs I need to rollback the transaction.

As I understand, the proper way to trigger a rollback is to throw an exception from the controller.

But if I throw an exception from the controller, I won't get a chance to return a ModelAndView object from the controller.

How can I trigger a rollback in the controller, while still providing a ModelAndView to be rendered?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乞讨 2024-12-05 23:24:41

例外是应遵循的适当途径。 Spring 可以 将异常映射到视图也是如此。这可能就是您想要做的。

Exceptions are the appropriate route to follow. Spring can map exceptions to views as well. This is probably what you want to do.

ま柒月 2024-12-05 23:24:41

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

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

First, I don't think that using @Transaction on controller methods is a good thing. It's better to keep transactional logic in a 'service tier' and use the @Transaction annotation there.

But if you still want to use @Transaction on the controller, take a look at org.springframework.web.servlet.handler.SimpleMappingExceptionResolver

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文