通过TransactionCallback接口中的方法后(这里用来做业务),将返回值传递到TransactionTemplate的execute()中。通过调用TransactionStatus 的setRollbackOnly()方法来实现事物回滚。

使用TransactionTemplate

如果不需要返回值,则需要做以下操作(由于TransactionCallbackWithoutResult是一个抽象类,该类的doInTransactionWithoutResult方法是一个抽象方法,故无法通过lambda进行编写):

transactionTemplate.execute(new TransactionCallbackWithoutResult() {

    protected void doInTransactionWithoutResult(TransactionStatus status) {
        try {
            updateOperation1();//业务代码
            updateOperation2();
        } catch (SomeBusinessException ex) {
            status.setRollbackOnly();
        }
    }
});

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-28
  • 2021-10-03
  • 2021-10-03
猜你喜欢
  • 2021-04-30
  • 2022-12-23
  • 2021-10-09
  • 2021-11-01
  • 2021-06-27
相关资源
相似解决方案