0

多くの同時リクエストを処理するサーブレットがあり、一部のリクエストが例外をスローする場合があります。Hibernateガイドからこの警告を見ました:

「Session が SQLException を含む例外をスローした場合は、すぐにデータベース トランザクションをロールバックし、Session.close() を呼び出して、Session インスタンスを破棄します。」

私の実際のシナリオでは、リクエストによって DB に多くの重要な変更が加えられ、例外をキャッチすると、以前に行ったすべての変更をロールバックする必要があります。

そのため、すべての変更が確実にロールバックされるように、クエリごとのトランザクションではなく、リクエストごとのトランザクション パターンを実装する必要があるようです。

それはそうです?

4

1 に答える 1

0

それはあなたが望むものに依存しますが、はい、一般的に、リクエストの存続期間中に 1 つのトランザクションが必要であり、そのリクエストのすべてのデータベース操作がその 1 つのトランザクションに参加する必要があります。通常、これは、リクエストに 1 つのセッションがバインドされていることも意味します。

于 2012-07-28T11:15:02.810 に答える