使用ExceptionHandler时如何回滚事务

将交易放在一块文本上时,应该在发生异常时回滚。如果没有@ExceptionHandler可以处理错误,它将执行此操作。有问题的异常是RunTimeException,但是即使我仍然希望任何异常导致回滚,我还是将事务放在整个动作链上进行rest调用。

public class TransactionalFilter implements Filter {
    @Override
    @Transactional(rollbackOn = Exception.class)
    public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException {
        chain.doFilter(request,response);
    }
...

这一直有效,直到我放入任何ExceptionHandler之类的

@ExceptionHandler
public ResponseEntity handleException(Exception exception) {
    return ResponseEntity.badRequest().body("Something happened");
}

我只尝试了通用处理程序或更具体的异常,如果异常被异常处理程序捕获,则会发生这种情况。如何同时使用两者?

根据@Transactional rollback along with @ExceptionHandler问题,它应该具有更严格的范围,但在过滤器上似乎并非如此。

wangkewei5724146 回答:使用ExceptionHandler时如何回滚事务

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2879304.html

大家都在问