SQL データベースにアクセスするために JDBC を使用して独自のデータ レイヤーをコーディングしています。主要コンポーネントの 1 つはトランザクション マネージャーです。
このコンポーネントでネストされたトランザクションをサポートするかどうか、少し混乱しています。ネストされたトランザクションのサンプル コードは次のとおりです。
tx1.begin();
... // do something with tx1
tx2.begin();
... // do something with tx2
tx2.commit();
...
tx1.commit();
過去の開発実験では、それらが必要になったことは一度もありませんでした。コードがより複雑になると思います。しかし、それらが役に立たないか有用かはわかりません。ネストされたトランザクションが必要な、または少なくとも有利なケースをいくつか挙げていただけますか? そして、それらの長所と短所は何ですか?
質問を明確にし、トランザクションの意味を説明するために、コメントを以下に貼り付けました。
私はJDBCを使用しています。そのため、トランザクション マネージャーは基盤となるデータベースから独立しています。トランザクションとは、autoCommit 以外の JDBC 接続を意味します。トランザクション マネージャは、非 autoCommit 接続でトランザクション オブジェクトを返します。このトランザクションを使用するクライアント コードは、トランザクション オブジェクトをコミットすることにより、接続をコミットして閉じます。
前もって感謝します。