0

最近、次の例外が発生しました。 org.springframework.dao.DeadlockLoserDataAccessException: PreparedStatementCallback;

コードが次のメソッドを呼び出していたときに発生しました。 int[] org.springframework.jdbc.core.JdbcTemplate.batchUpdate(String[] sql) throws DataAccessException

つまり、DeadlockLoserDataAccessExceptionバッチ jdbc クエリの実行中に取得しました。

ランタイム例外ですが、キャッチして再試行することにしました。

しかし、バッチ内のクエリがどうなるかはわかりません。それらはすべてロールバックされますか? または、この例外がスローされた後のクエリは実行されず、これより前のすべてのクエリが実行されましたか?

4

1 に答える 1

0

トランザクションの外部でデッド ロック例外をキャッチする必要があります。

トランザクション マネージャーが例外のロールバックに設定されている場合、バッチからのすべてのクエリがロールバックされます。

于 2014-01-24T01:19:20.287 に答える