春の物事管理(@Transactional)、異常なトランザクションのロールバックは、物事がロールバックされません、キャッチキャプチャは投げないようにしよう

デフォルトでは、春の業務にのみ発生したときにキャッチされないのRuntimeExceptionロールバック(実行時例外)。
注意、してみてください書いて、書いていないキャッチしますtry {}キャッチ(例外e) {)(新規のRuntimeExceptionを投げる;} と同じ意味です。
下の図は、異常なJavaシステムを示しています。
ここに画像を挿入説明
ソリューション:

  1. ないのRuntimeExceptionをキャプチャ、キャプチャまたは投げます。
  2. キャプチャして、手動でロールバックされ、
        try {
            //orderDOMapper.insertSelective(orderDO);
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
            //throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR,"重复秒杀!");
        }

一般的なユーザ体験は良いですが、私は、カスタム例外をスローするように第二の溶液、キャプチャを使用し、その後、手動でロールバックされ、その後、例外をスローカスタマイズします。

おすすめ

転載: blog.csdn.net/weixin_44997483/article/details/92571083