2016-10-21 1 views

答えて

0

あなたの質問は、Springトランザクションに関するもので、ビジネスロジックとSpringトランザクションの制御方法に依存していると思います。

Springトランザクション "REQUIRED"または "SUPPORTS"を理解するには、Springトランザクション定義を理解する必要があります。このトランザクション定義タイプはorg.springframework.transaction.TransactionDefinitionクラスから来ます。しかし、まずあなたは1)春の取引の種類と2)春の取引の定義を理解する必要があります。これは、あなたがプログラミングの助けを借りて、トランザクションを管理しなければならないことを意味し:
プログラムによるトランザクション管理:

1)春には、トランザクション管理の2種類をサポートしています。それはあなたに極端な柔軟性をもたらしますが、維持することは困難です。

宣言的トランザクション管理:これは、トランザクション管理とビジネスコードを分離することを意味します。注釈またはXMLベースの設定を使用してトランザクションを管理するだけです。

2)春のトランザクション定義
PROPAGATION_REQUIRED: 春REQUIREDの動作は、現在のBeanメソッドの実行コンテキストですでに開かれたトランザクションがある場合、同じトランザクションが使用されることを意味します。存在しない場合は新しいものを作成します。 つまり、内部(2nd Transaction)メソッドによってトランザクションがロールバックされた場合、外部(1st Transaction)メソッドはコミットに失敗し、トランザクションもロールバックされます。
PROPAGATION_SUPPORTS: 現在のトランザクションをサポートします。存在しない場合は非トランザクションで実行します。

これらの "REQUIRE" "SUPPORTS"を理解するだけでは十分ではありません。私は、org.springframework.transaction.TransactionDefinitionクラスのすべてのSpring定義を理解する必要があることを述べました。

残念ながら、私は2014年12月にslidehareのウェブサイトで書いたこのSpringのタイプとトランザクションについて1つの力点を持っていました。 Spring Transaction Management

このスライドでは、パワーポイントノートセッションでSpringトランザクションについて非常に重要な点を追加しました。したがって、スライドの内容を参照するだけでなく、スライドノートのセッションも参照してください。それが助けて欲しい。

例:Springのトランザクション定義の詳細については、パワーポイントノートのセッションも参照してください。 enter image description here

編集:
伝播手段​​:通常、トランザクションのスコープ内で実行されるすべてのコードは、そのトランザクションで実行されます。ただし、トランザクション・コンテキストがすでに存在する場合にトランザクション方式が実行される場合の動作を指定するオプションがあります。たとえば、既存のトランザクションでコードを実行し続けることができます(一般的なケース)。既存のトランザクションを一時停止して新しいトランザクションを作成することができます。 SpringはEJB CMTに慣れ親しんだすべてのトランザクション伝播オプションを提供します。 Springのトランザクション伝播のセマンティクスについては、Transaction Propagation

+0

を参照してください。私はあなたの答えから多くを得て、あなたのウェブサイト「Spring Transaction Management」にアクセスできません。 – porkie

+0

@porkie http://www.slideshare.net/mysky14/spring-transaction-management-42464004、ここにいるよ!! plzはあなたが満足すれば答えを受け入れて投票します。 –

関連する問題