在我的 Spring MVC 应用程序中,我的 Controller 中有一个方法,需要将一堆对象(从上传的文件构建)保存到数据库中。让我们暂时把关于事务是否应该在 Controller 或服务层中完成的整个问题放在一边——重点是在 Controller 中完成它在技术上应该是可行的,但我发现了问题。 如果您查看下面的代码,我期望的是,如果对 saveContact 的三个调用中的任何一个因异常而失败(任何异常,因为我放置了 rollbackFor = Exception.class ),那么所有三个调用都应该回滚。不过,我看到的是,如果第三个失败,前两个的数据仍然存在于数据库中。抛出的异常是 PersistenceException,所以我相信这应该会触发回滚,但事实并非如此(它会冒泡到客户端的浏览器,这正是我所期望的,因为我没有捕获它)。
code removed for security reasons
谢谢
最佳答案
使用 proxy-target-class="true"你告诉 spring 使用 cglib 来处理代理,但你已经指定了scoped-proxy="interfaces"。
关于java - @Transactional Controller 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31475085/