0

プログラムの実行にハンドラー、businessObject、および DAO を使用するプログラムがあります。制御はハンドラーから始まり、businessObject へ、そして最後にデータベース操作のための DAO へと続きます。

たとえば、私のプログラムでは、insertEmployee()、updateEmployee()、deleteEmployee() という 3 つの操作が実行されます。各メソッドは、ハンドラから次々に呼び出されます。insertEmployee() を呼び出してコントロールをハンドラーに戻すと、updateEmployee() を再度呼び出してコントロールをハンドラーに戻してから、deleteEmployee() を呼び出します。

問題の説明: dao の最初の 2 つのメソッドが成功し、制御がハンドラーに戻り、dao に要求する次のメソッドが deleteEmployee() である場合。その間、deleteEmployee() で何らかの例外に直面します。以前の insertEmployee() および updateEmployee() 操作もロールバックできるはずです。deleteEmployee() だけをロールバックするべきではありません。このプログラムはシステムで実行されたことがないため、動作するはずです。

春のjdbcTemplateトランザクション管理でこれを達成する方法を教えてください。

4

1 に答える 1

0

特に、トランザクションの伝播について確認する必要がありますPROPAGATION_REQUIRED

詳細: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/transaction.html#tx-propagation

于 2015-07-22T06:49:20.503 に答える