我想执行一些操作并将其结果(成功或失败)存储在db。
中@Service
public MyService {
@Transactional
public void myOperation() {
try {
otherService.doDatabaseOperationThatMayFail();
repository.writeSuccess()
} catch (Exception e) {
repository.writeFailure()
}
}
}
但如果otherService.doDatabaseOperationThatMayFail()
本身被标记为@Transactional
或使用此类组件,并且这些方法中的任何一个抛出异常,则整个事务都标记为回滚。我无法从@Transactional
使用的所有服务中删除MyService
。那么如何将故障信息存储在我的数据库中呢?