はじめに:Javaコードで、私たちはしばしば業務を実行されている@Transaction表現に注釈を使用します。
@ トランザクション 2つの属性が常にあります。物事のロールバックは、伝播が-------トランザクションで指定された伝搬特性は、取引方法は、時に複数の呼び出しを発生したときに何も異常が発生したときにrollbackfor -----実行時間
このような取引の特性との問題を解決するときに、トランザクションは、トランザクションBを呼び出すなど
1.事務の春と呼ばれるもの
トランザクションデータベースは、事務の春存在しないことなく、春の取引は、実際のトランザクションデータベースです。
2.トランザクション分離レベルデータ
非コミット読み取り、シリアル化された読書、読み取り、反復可能読み取りを提出します。
非コミット読み取り:リード・トランザクション、さらにBを提出し、読み取りトランザクションデータ、すなわちダーティリード。
リードはコミット:トランザクションデータベースデータb変更操作である場合、トランザクションに複数回読み取り、トランザクションが一貫性のないデータをもたらすことができる、すなわち、非反復可能読み取り、複数回発生します。
反復可能読み取り:トランザクションは運用データB削除し、トランザクションの前に読み取りトランザクションデータはまだBを操作しているときに、トランザクションに複数回を読んで、錯覚が起き、すなわちファントム読み。
シリアル化が読み:ときに、トランザクション処理、テーブル全体をロックし、他の人がデータ、セキュリティの場合の最高レベルを操作できますが、高い同時実行の場合には効率に影響を与えません。
3.スプリングトランザクション分離レベル
検疫データベースの第四に増加したデフォルトのレベル
デフォルトのレベルはどのような分離レベルでの分離レベルのデータベースへの変更、どのような分離選挙データベース用途、春に従うように変更されます。
トランザクションの前記バネ伝搬特性
トランザクションの伝搬特性とは何ですか?
最初は、複数のトランザクションの場合は確かに存在し、トランザクション伝播、拡散業務である事務の普及で、業務の広がりがある場合に、表示されます。
例:トランザクションで使用する方法、方法Bは、トランザクションでも使用されている。自分の業務における事務の方法b、その後、方法Bメソッドを呼び出すか、トランザクションを処理しますか?この現象は、事務の普及と呼ばれています
トランザクションの伝搬特性が7に分割されています。
必要:現在のトランザクションをサポートして、例外が発生した場合、トランザクションBは、ロールバックされていないトランザクションは、新しいトランザクション、およびトランザクション場合は、この春には、デフォルトのトランザクション分離レベルであります
支持体は:トランザクションが、操作の非トランザクションモードを置いていない場合は、現在のトランザクションをサポートしています。両方の異常なロールバックされることはありませんが表示されます
required_new:新しいものを作成し、現在のトランザクションが存在する場合、現在のトランザクション・サスペンション、新しいトランザクションからの他、トランザクションの時間を実行すると、保留中のトランザクションになりますB、取引が完成し、実行中のBトランザクションの後に実行されます、
この時点で、トランザクションは珍しい事B、Bトランザクションが提出されたためにロールバックされない場合は、例外が発生した場合、トランザクションの実行bは、トランザクションをキャプチャすることができたときに継続することを選択するか、ロールバックトランザクションA
manatory:トランザクションが現在の例外がスローされない場合は、トランザクションがなければなりません
サポートしていません:現在のトランザクションは、現在のトランザクションの中断が存在する場合、現在のトランザクションをサポートしていません。
決して:現在のトランザクションが存在する場合は、例外がスローされ、現在のトランザクションをサポートしていません。
現在のトランザクションが存在する場合、そのトランザクションはロールバックのものにB、トランザクションがBを失敗したときにセーブポイントセーブポイントを設定し、トランザクションBを実行する前に、ネストされた実行され、トランザクションが新しいものではない場合:ネストされました
セーブポイント;トランザクションがダウンにC、Dとなるように実行し続けることができますトランザクション。トランザクションがBを実行するために失敗しない場合、bはトランザクションを提出していないだろう、必要外層後のトランザクションが提出されるまで、完成待ちであるトランザクションが異常が現れた場合、トランザクションは、Bをロールバックされます
ポイントを保存するには、だけでなく、トランザクションをロールバックします。