検索

12.7.6. トランザクションのロールバック

download PDF
この手順では、Java Transaction API (JTA) を使用してトランザクションをロールバックする方法を説明します。

要件

トランザクションは、ロールバックする前に開始する必要があります。トランザクションの開始方法については、を参照してください。「トランザクションの開始」

  1. 電話するrollback()UserTransaction のメソッド。

    あなたが電話するときrollback()UserTransaction のメソッドである場合、トランザクションマネージャーはトランザクションをロールバックし、データを以前の状態に戻そうとします。
     
    @Inject
    private UserTransaction userTransaction;
    
    public void updateTable(String key, String value)
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        try {
            userTransaction.begin():
            <!-- Perform some data manipulation using entityManager -->
              ...
              // Commit the transaction
            userTransaction.commit();
        } catch (Exception ex) {
            <!-- Log message or notify Web page -->
            ...
            try {
                userTransaction.rollback();
            } catch (SystemException se) {
                throw new RuntimeException(se);
            }
            throw new RuntimeException(e);
        } finally {
            entityManager.close();
        }
    }
    
  2. CMT (Container Managed Transaction) を使用する場合は、トランザクションを手動でロールバックする必要はありません。

    Bean がコンテナー管理トランザクションを使用するよう設定すると、コンテナーはコードで設定したアノテーションに基づいてトランザクションライフサイクルを管理します。
    注記
    CMT のロールバックは RuntimeException が発生すると実行されます。setRollbackOnly メソッドを明示的に呼び出してロールバックを発生させることもできます。または、アプリケーション例外の @ApplicationException(rollback=true) を使用してロールバックできます。

結果

トランザクションは、トランザクションマネージャーによってロールバックされます。

注記
完全な例については、を参照してください。「JTA トランザクションの例」
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.