不要让事务回滚特定类型的 RuntimeException
Do NOT let transaction rollback for a particular type of RuntimeException
嗨,有没有办法让 spring 事务在我抛出特定类型的 RuntimeException 后不回滚?
我有一个 class 叫做 CustomException extends RuntimeException,我想在抛出它之前做某事。但是由于回滚,doSth() 所做的任何事情都会回滚。
doSth();
throw new CustomException();
我可以通过将 CustomException 从扩展 RuntimeException 更改为 Exception 使其成为检查异常来管理它。
但是在执行此操作后,我必须将 throws CustomException
添加到将调用此代码块的所有方法。所以只是想知道是否有更优雅的方式
你应该使用@Transactional 的 noRollbackFor 属性。
@Transactional(noRollbackFor = customException.class)
嗨,有没有办法让 spring 事务在我抛出特定类型的 RuntimeException 后不回滚?
我有一个 class 叫做 CustomException extends RuntimeException,我想在抛出它之前做某事。但是由于回滚,doSth() 所做的任何事情都会回滚。
doSth();
throw new CustomException();
我可以通过将 CustomException 从扩展 RuntimeException 更改为 Exception 使其成为检查异常来管理它。
但是在执行此操作后,我必须将 throws CustomException
添加到将调用此代码块的所有方法。所以只是想知道是否有更优雅的方式
你应该使用@Transactional 的 noRollbackFor 属性。
@Transactional(noRollbackFor = customException.class)