spring - 不要让特定类型的 RuntimeException 的事务回滚
问题描述
嗨,有没有办法在我抛出特定类型的 RuntimeException 后让 spring 事务不回滚?
我有一个名为 CustomException 的类扩展了 RuntimeException,我想在抛出它之前做某事。但是由于回滚,doSth() 所做的任何事情都会被回滚。
doSth();
throw new CustomException();
我可以通过将 CustomException 从扩展 RuntimeException 更改为 Exception 来管理它,以便它成为一个检查异常。
但是,在这样做之后,我将不得不添加throws CustomException
到将调用此代码块的所有方法。所以只是想知道是否有更优雅的方式
解决方案
您应该使用@Transactional 的 noRollbackFor 属性。
@Transactional(noRollbackFor = customException.class)
推荐阅读
- python - Cannot locate a static file. I get an error that 'STATIC_ROOT' is not set
- python - Is it better to always use `super()__init__()` for subclass inheritance. what advantage does it offer?
- python - Getting "DoesNotExist at /api/accounts/register Token matching query does not exist." response when registering an account
- java - Does Mojo's AspectJ Maven Plugin work with jdk 9+?
- regex - Regex that satisfies multiple criteria
- javascript - push button value to firebase with Jquery
- python - JupyterLab 中的 Folium 库问题 - 受信任的笔记本不显示地图
- python-3.x - 如何在旧的 centos 共享 Web 主机(无 root)上安装 Python 3.7?
- kubernetes - 如何在 kubernetes externalsecret CRD 中有多个 vault 挂载点
- python - 即使需要的模板在 /templates 中,Flask 也会抛出 TemplateNotFound