2011-01-24 10 views
0

トランザクションロールバックでトランザクション対象外のオブジェクトをすべて復元したいとします。 Ex :: Listオブジェクトがトランザクションの開始前に2つのオブジェクトを保持し、トランザクションの後に2つ以上のオブジェクトが追加されている場合、トランザクションのロールバックで定義されたListオブジェクトはその状態を復元する必要があります。最初の2つのオブジェクトだけを含む必要があります。私はSpring Declarative Transaction管理を使用しています。任意の提案のためのトランザクションのロールバック時のオブジェクト状態の復元

おかげで、事前に...

+0

"非トランザクションオブジェクト"というヒントがあなたの質問にあります。それらが非トランザクションの場合、定義によってロールバックすることはできません。 – skaffman

+1

魔法は存在しません。自分で作成する必要があります。オブジェクトはトランザクションを理解する必要があり、トランザクションが開始される前に状態を格納しなければなりません。彼らが参照するものにも適用されます。ウサギの穴へようこそ。 – Will

+0

どうすればいいのですか?トランザクションの前に状態を保存してください – Rahul

答えて

0

ソフトウェアトランザクショナルメモリ(STM)は、あなたの問題のために良い解決策かもしれません。これは、主に同時のシナリオを処理するためのものですが、ロールバック機能を必要とするシングルスレッドアプリケーションでも同様に動作します。

おそらく、Spring Declarative Transactionの管理は使用できませんが、STMモデルは使いやすいです。

Akta-STM(http://doc.akka.io/stm-java)は、特にJTAのサポートが必要な場合に適しています。 Multiverse(http://multiverse.codehaus.org/overview.html)や他のJava実装もあります。

+0

+1 STM。 JVMの上にSTMを与えるMultiverseをチェックしてください。 AkkaはMultiverseをフードの下で使用します。 JVSTMとDueceはそこにある他のものです。 Qより –

+0

。しかし、私はデュースについてより良い事例を得ることができませんでした。あなたは私を助けることができます.. – Rahul

関連する問題