首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多查询和事务

多查询和事务
EN

Stack Overflow用户
提问于 2017-01-04 05:39:55
回答 1查看 45关注 0票数 0

我对许多数据做了一些处理,所以我做了一个循环。

代码语言:javascript
复制
@Transactional
@Override
public void processPayment(List<Long> paymentsId, PaymentModeEnum paymentMode) throws ProcessPaymentException{
   ...
   processCreditCardPayment(payments);
}

private void processCreditCardPayment(List<Payment> payments) throws ProcessPaymentException {
    for (Payment payment : payments) {

         try {
              //save to db
         }catch (ProcessPaymentException ppe) {
         }

    }
}

ProcessPaymentException扩展异常

如果我在10个项目上循环,在最后一个项目上,错误发生了。所有内容都已回滚(我的所有项目),还是只有一个出错?

EN

回答 1

Stack Overflow用户

发布于 2017-01-04 12:35:55

在这种情况下,不会回滚任何内容。这是因为您捕获了异常,而它没有通过Spring事务边界。

Read here in Spring Docs

向Spring Framework的事务基础设施指示事务的工作将被回滚的推荐方法是从当前在事务上下文中执行的代码中抛出异常。Spring Framework的事务基础结构代码将在调用栈冒泡时捕获任何未处理的异常,并决定是否将事务标记为回滚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41452825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档