【发布时间】:2017-07-09 23:37:46
【问题描述】:
作为我代码的一部分,@Transactional 注释方法。在某些情况下,该方法会引发自定义异常并执行回滚。每当发生这种情况时,方法调用都会导致 TransactionSystemException 并且无法获取原始自定义异常(这不是异常的根本原因)。
我能否以某种方式访问我的方法引发的原始异常? 我可以阻止 spring 抛出 TransactionSystemException,但仍然回滚吗?
@Transactional
public Association create(Long accountId) {
// if association already exists, throw exception
throw new ErrorInfoException(ErrorInfo.duplicateAssociation(accountId).info("This Association already exists").build());
}
【问题讨论】:
-
你能在抛出这些自定义异常的地方添加事务方法吗?
-
@MaciejKowalski 我编辑了其中一种方法。它们都很简单
-
您如何尝试从 TransactionSystemException 中检索根/原始异常?
标签: java spring spring-boot transactions spring-data-jpa