0

一部のデータを特定のテーブルに保存する Web サービスを公開しています。私はsqlserverデータベースを使用しています。複数のシステムが Web サービスを同時に使用できます。

問題は、2 つのシステムがレコードの存在をチェックして false を報告し、同時に新しいレコードを挿入することです。これにより、キーの重複による同時実行例外が発生します。

私は休止状態を使用しており、Webサービスを呼び出しているシステムはプライマリキーも提供します。

ここでメソッドを次のように作成できsynchronizedますか?欠点がありますか、またはこれを行うためのエレガントな方法はありますか?

ありがとう!

4

1 に答える 1

0

synchronised重複を避けるためにJava/Hibernateを使用することはお勧めしません。既存のアプリケーションをスケーリングする必要がある場合、またはデータを変更する別のアプリケーションを追加する必要がある場合でも、この問題は発生します。

これを行う最善の方法は、重複を避けるためにテーブルに一意の制約を設定することです。これにより、重複を挿入するときに一意の制約違反を処理し、必要なことを行うことができます。

于 2013-03-28T11:00:20.740 に答える