代码之家  ›  专栏  ›  技术社区  ›  JiKra

带回滚的TransactionTemplate

  •  1
  • JiKra  · 技术社区  · 7 年前

    @Transactional 我服务的私人方法 @事务性 org.springframework.transaction.support.TransactionTemplate . 重构简单 很简单,但我有一个事务方法 rollbackFor 像这样的属性:

    @Transactional(rollbackFor = ProcessingAlertException.class)
    private void processAlert(Alert alert) {
        // do something
    }
    

    org.springframework.transaction.TransactionStatus 似乎没有任何合适的方法。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Karol Dowbecki    7 年前

    因为你已经决定使用 TransactionTemplate ,你可以直接打电话 TransactionStatus.setRollbackOnly() TransactionCallback :

    transactionTemplate.execute(transactionStatus -> {
        try {
          ...
        } catch (ProcessingAlertException ex) {
          transactionStatus.setRollbackOnly();
        }
    });