mybatis物事ロールバック


1.追加:
@Transactional

2.runtime異常放出
throw new RuntimeException("    ,    ");
    @Override
    @Transactional
    public Message updateSeed(JSONObject jsonObject) {
        Message message = new Message();
        
        Integer success1 = 1 ;
        
        Integer success2 = 0 ;
        

        if(success1 < 1 || success2 < 1){
            message.setMessage("    !");
            throw new RuntimeException("    ,    ");
        }else{
            message.setSuccess(true);
        }


        return message;
    }

@Transactionalトランザクションの注意点
A.一つの機能が事務を必要とするかどうかは、設計、符号化の考慮に入れなければならないことに注意しなければならない.基本機能が完成しただけでOKになるわけにはいきません.B.事務を追加したら、開発環境テストをしっかりと行わなければならない(テスト環境でもできるだけ例外をトリガーし、ロールバックをテストします)トランザクションが有効であることを確認します.C.トランザクションの使用手順の注意事項は以下の通りです.注意してください.1.インタフェースで@Transactionalを宣言しないで、特定のクラスの方法で@Transactional注釈を使用します.そうしないと注釈が無効になる可能性があります.2.手間を省かずに@Transactionalをクラスレベルの宣言に配置しますクラス宣言に置くと、すべてのメソッドにトランザクションがあります.したがって@Transactionalはメソッドレベルに置くべきで、トランザクションのメソッドを使用する必要はなく、クエリーメソッドなどのトランザクションを配置しないでください.そうでなければ、パフォーマンスに影響します.3.@Transactionalメソッドを使用して、同じクラス内のメソッドを呼び出し、@Transactionalは無効です.例えばクラスTestという方法AがありますAはTestクラスのメソッドB(Bがpublicであろうとprivateであろうと)を再呼び出しますが、Aは注釈トランザクションを宣言していません.Bはあります.外部からAを呼び出した後、Bのトランザクションは機能しません.(よくここでエラーが発生する)4.@Transactionalを使用した方法はpublicのみであり、@Transactional注釈の方法は外部の他のクラスに呼び出されてこそ有効であるため、publicのみである.理屈は上記と関連している.したがってprotected、privateまたはpackage-visibleの方法で@Transactional注釈を使用してもエラーは報告されないが、トランザクションは無効である.5.ICORE-CLAIMでテストした結果、A.調べられた異常XXXXXExceptionを投げ出すと、トランザクションがロールバックします.B.ランタイム異常NullPointerExceptionを投げ出すと、トランザクションはロールバックされます.C.Quartzでは、executeは直接@Transactionalメソッドを呼び出し、ロールバックすることができる.間接的に呼び出され、ロールバックされません.(すなわち、上記3点で述べた)D.非同期タスクでは、executeは@Transactionalメソッドを直接呼び出してロールバックすることができ、間接呼び出しではロールバックしません.(前述の3点)E.actionに@Transactionalを付けると、ロールバックしません.actionにトランザクションを付けないでください.F.serviceに@Transactionalを付けると、actionが直接このメソッドを呼び出すとロールバックし、間接コールであればロールバックしません.(前述の)G.serviceのprivateに@Transactionalを加えると、トランザクションはロールバックしません.
その他の参考:https://blog.csdn.net/kinseygeek/article/details/54931710