2013-03-28 90 views
0

我有一個Web服務暴露,這將保存一些數據到一個特定的表。我正在使用sqlserver數據庫。多個系統可以同時使用Web服務。hibernate和sqlserver併發問題?

問題是,兩個系統正在檢查記錄的存在並報告false,同時插入一條新記錄,這導致了由於重複密鑰導致的併發異常。

我正在使用休眠和系統無論哪個調用Web服務提供主鍵也。

在這裏我可以使方法爲​​?會有缺點,還是有沒有優雅的方式來做到這一點?

謝謝!

回答

0

我不會推薦使用synchronised甚至使用Java/Hibernate來避免重複;如果您必須擴展現有的應用程序或添加另一個修改數據的應用程序,您仍然會遇到此問題。

要做到這一點,最好的方法是在表上設置一個唯一的約束,以避免重複;這允許您在插入重複項時執行唯一的約束違規,並執行您所希望的任何操作。